Bonjour
je travail depuis pas mal de temps sur les socket pour pouvoir transmettre un msg d'un pc vers un autre sous réseau local.
sachant que la programmation réseau c'est pas mon domaine, j'ai utiliser la bibliothèque SFML.
Pour la partie serveur j'ai écrit ce code:
et pour la partie client voila le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 #include "stdafx.h" #include "SFML/Network.hpp" #include "iostream" int main() { sf::IPAddress Address2("192.168.1.3"); // Création du socket UDP sf::SocketUDP Socket; // On le lit au port 4567 if (!Socket.Bind(4567)) { // Erreur... } char Buffer[128]; std::size_t Received; sf::IPAddress Sender; unsigned short Port; if (Socket.Receive(Buffer, sizeof(Buffer), Received, Sender, Port) != sf::Socket::Done) { // Error... } // On affiche l'adresse et le port de l'expéditeur std::cout << "Adresse Ip du client :" << Sender << " : " << Port << std::endl; // On affiche le message reçu std::cout << Buffer << std::endl; // "Hi guys !" Socket.Close(); return 0; }
le message "Hi guys !" est bien transmis vers le serveur le seul problème c'est les deux programme plantent avec un message d'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 // socket_udp_client.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "SFML/Network.hpp" #include "iostream" int main() { //sf::IPAddress Address2("192.168.1.5"); sf::IPAddress Address6 = sf::IPAddress::GetLocalAddress(); // Création du socket UDP sf::SocketUDP Socket; // Création du tableau d'octets à envoyer char Buffer[] = "Hi guys !"; // Envoi des données à l'adresse "192.168.0.2" sur le port 4567 if (Socket.Send(Buffer, sizeof(Buffer), "192.168.1.3", 4567) != sf::Socket::Done) { // Erreur... } Socket.Close(); return 0; }
Unhandled exception at 0x104817fd (msvcp80d.dll) in socket_udp_client.exe: 0xC0000005: Access violation writing location 0xcccccccc.
avec deux boutton break et continue, lorsque je clique sur continue rien ne se passe par contre le click sur boutton break ouvre un fichier xutility.
Alors j'en ai pas la moindre idée d'ou sa vient le problème
Merci pour votre aide.
Partager