Problème TCP

Fildomen Messages postés 805 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 30 octobre 2010 - 13 sept. 2004 à 19:17
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 - 14 sept. 2004 à 10:26
Salut
j'ai créer un serveur en utilisant le protocole(je sais pas ce que vous l'appeler) Tcp, mais quand je passe au développement du client, le problème c'est que j'ai un seul Pc(peut-être que c'est pas un problème), et quand je me connecte via mon ip(81.193.26.315) et le même port:

SClient=new TcpClient(new IPEndPoint( IPAddress.Parse("8119326315"),2002));

L'erreur suivante s'affiche (le serveur est démarré en même temps):

Une exception non gérée du type 'System.Net.Sockets.SocketException' s'est produite dans system.dll

Informations supplémentaires : Une seule utilisation de chaque adresse de socket (protocole/adresse réseau/port) est habituellement autorisée

et si je me connecte en local, comme ca

SClient= new TcpClient("localhost",port);

tout se passe bien.

maintenant je veux savoir comment mon prog de client peut se connecter au serveur via son ip et sur le même port (évident) même s'il sont sur le même Pc? car plusieurs internautes vont utiliser mon appli(je l'éspère), et tous doivent se connecter à mon pc(qui sera toujours allumé).

Merci (je suis bloqué maintenant :-( , alors je vais arrété le projet jusqu'à que qlq'un me donne une solution,PLEASE PLEASE)
Merci Merci Merci
A voir également:

3 réponses

MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
14 sept. 2004 à 09:28
Le fait d'avoir un seul PC n'est pas un problème normalement.
Je développe aussi une appli client/ serveur, et pour le moment je teste sur une seule machine et ca marche tres bien.

Le problème c'est que j'utilises le couple socket/TCPListener, et pas le TCPClient, donc je sais pas a quoi est due ton erreur.

Pour ta seconde question, si ton PC fait serveur, tout les clients qui utiliseront ton appli pourront se connecter à ton serveur, et sur le meme port. Cependant, il faut que ton appli serveur gère plusieurs clients a la fois -> Gestion de plusieurs threads (un thread par client).

Il te faut donc un thread principal qui ecoute le port, et intercepte l'arrivée d'un client, et ensuite, qu'un thread soit créé pour chaque client qui se connecte.
J'avais trouvé une très bonne source dont je m'étais inspiré, regarde si tu ne peux pas y trouver ton compte :

http://www.c-sharpcorner.com/Code/2003/June/Worms.NET.asp

Je vais essayer de chercher pour ta premiere question. N'hésite pas a donner + d'infos.

Bon courage !

Mx
0
Fildomen Messages postés 805 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 30 octobre 2010
14 sept. 2004 à 10:19
merci, mais tu peux me dire comment tu fais pour connecter ton client sans utiliser le TCPCLIENT?
merci
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
14 sept. 2004 à 10:26
En gros voila :

Les variables
private int port;
private IPAddress  ipServer;
private IPEndPoint server;
private Socket socket;


L'initialisation

public void Initialize(string server)
{
this.port = Common.Port;
this.ipServer = IPAddress.Parse(server);
this.server = new IPEndPoint(ipServer, port);
this.socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
Connect();
}


Et la connexion

private void Connect()
{
try
{
socket.Connect(server);
if(socket.Connected)
{ ...



J'espere que ca pourra t'aider

Mx
0
Rejoignez-nous