Voici mon programme Serveur :
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();
}
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
 
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() ;
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 ?
D'avance merci. Damien[/code]