Bonjour à tous,
j'ai un projet windows forms qui est censé communiquer avec un autre projet (Ogre 3D).
Du côté windows forms j'ai utilisé la classe du .net framework TCPListener pour créer mon serveur qui sert à écouter et recevoir les données envoyées par le client.
Server:
le client:
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 ref class leserver { public: void travail() { System::Net::IPAddress^ ipAddress = System::Net::Dns::Resolve( "127.0.0.1" )->AddressList[ 0 ]; TcpListener^ tcpListener = gcnew TcpListener( ipAddress,1300 ); tcpListener->Start(1); array<Byte>^bytes = gcnew array<Byte>(256); while (true){ Thread::Sleep(100); TcpClient^ client =tcpListener->AcceptTcpClient(); NetworkStream^ stream = client->GetStream(); stream->Read( bytes, 0, bytes->Length ); //MessageBox::Show(System::Text::Encoding::ASCII->GetString(bytes)); donnee=(System::Text::Encoding::ASCII->GetString(bytes)); bytes->Clear(bytes,0,30); } } System::String^ donnee; };
le hic est que je reçois tout le temps la même chose sur le serveur alors que je fais:
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 #include <winsock2.h> class leclient { public: void initetconnect() { WSAStartup(MAKEWORD(2,0), &WSAData); sin.sin_addr.s_addr = inet_addr("127.0.0.1"); sin.sin_family = AF_INET; sin.sin_port = htons(1300); sock = socket(AF_INET,SOCK_STREAM,0); bind(sock, (SOCKADDR *)&sin, sizeof(sin)); connect(sock, (SOCKADDR *)&sin, sizeof(sin)); } void envoi(const char* donnee ){ send(sock, donnee, 30, 0); } WSADATA WSAData; SOCKET sock; SOCKADDR_IN sin; };
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 i=0; -debutboucle ... | i++; | monclient.envoi(Ogre::StringConverter::toString(i).c_str()); ... -finboucle
la boucle marche bien et le i est bien incrémenté (j'ai vérifié côté client) mais du côté server je reçois toujours la première donnée uniquement, c'est à dire que quand i est initialisé à 0, je ne reçois que des 1 tout le temps alors que je voudrais recevoir 1,2,3...
quelqu'un peut-il m'expliquer pourquoi?
Merci d'avance.
Partager