Voici mon programme Serveur :
Voici mon programme 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 Int32 PortTCP=13000; //TCPListener ecoute le port 13000 IPAddress* LocalAddress = IPAddress::Parse(S"127.0.0.1"); //On créé le server TcpListener* ServerTCP = new TcpListener(LocalAddress,PortTCP); ServerTCP->Start(); // On demarre le server //Buffer de reception Byte MessageBytes[] = new Byte[256]; String* MessageString = 0; while(true) // le server boucle a l'infini { Console::Write(S"Attente de connection..."); //AcceptTcpClient est un appel bloquant //On attend une requete client TcpClient* ClientTCP = ServerTCP->AcceptTcpClient(); Console::WriteLine(S"\nConnection Etablie!"); MessageString = 0 ; //Stream utilisé pour lire et ecrire sur la connection NetworkStream* StreamClient = ClientTCP->GetStream(); Int32 NbBytes; //On boucle pour recevoir les données du Client. while(NbBytes = StreamClient->Read(MessageBytes,0,MessageBytes->Length)) { //Conversion Bytes[] § String* MessageString = Text::Encoding::ASCII->GetString(MessageBytes,0,NbBytes); Console::WriteLine(String::Format(S"Données recues : {0}",MessageString)); //On traite les données du client MessageString = MessageString->ToUpper(); MessageString = MessageString->Insert(0,new String("[Server]MessageRecu:")); Byte ReponseByte[] = Text::Encoding::ASCII->GetBytes(MessageString); } //On ferme la connection ClientTCP->Close(); }
Lorsque je fait fonctionner le programme en local comme indiquer ci-dessus, ca fonctionne il y a bien communication. Lorsque j'essai de changer l'adresse IP en paramettre de TcpClient...() sur le client ca ne fonctionne plus. J'ai bien verifier l'acces au 2 pc ping et net view, ca communique. Comment faire pour etablir cette liaison ?
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 String* MessageString = new String("Message du client") ; String* AdresseServer = new String(S"192.168.0.2"); //IP du destinataire //Création du client. Même adresse, Même port que le serveur Int32 PortTCP = 13000; TcpClient* ClientTCP = new TcpClient(AdresseServer, PortTCP); //Convertion String*/Bytes[] Byte MessageByte[] = Text::Encoding::ASCII->GetBytes(MessageString); //Stream utilisé pour lire et ecrire sur la connection NetworkStream* StreamClient = ClientTCP->GetStream(); //On envoi le message au serveur TCP connecté StreamClient->Write(MessageByte , 0 , MessageByte->Length); Console::WriteLine(S"Envoyé : {0}", MessageString); //On recoit la réponse du serveur String* ReponseString = String::Empty; Byte ReponseBytes[] = new Byte[256]; Int32 NbBytes = StreamClient->Read(ReponseBytes , 0 , ReponseBytes->Length) ; ReponseString = Text::Encoding::ASCII->GetString(ReponseBytes , 0 , NbBytes); Console::WriteLine(S"Recu : {0}", ReponseString) ; //On ferme la connection ClientTCP->Close() ;
D'avance merci. Damien[/code]
Partager