Salut,
Actuellement en train de développer un msn like, j'ai un soucis au niveau de lécoute sur 2 sockets.
J'ai utilisé Une socket pour spécialement destinée à recevoir les fichiers sur le port 8766
Et une autre socket spécialement pour les messages texte avec le même code mais sur le port 8765.
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 public ServerFile(int port) { IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName()); IPAddress ipAddress = ipHostInfo.AddressList[0]; EndPoint ep = new IPEndPoint(ipAddress, port); //((IPEndPoint)sockeServ.RemoteEndPoint).Address; sockFile = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); sockFile.Bind(ep); sockFile.Listen(100); } public void acceptSocketFile() { while (true) { try { //accepte Socket socketFile = sockFile.Accept(); } catch (SocketException s) { } } }
Depuis que je suis passé à 2 sockets d'écoute, quand j'envoie un fichier et du texte en même temps, mon texte va dans ma boucle de réception de fichier au lieu d'aller dans la boucle de réception des messages. Je ne comprend pas pourquoi il y a ce mélange.
Le scénario c'est:
je commence par envoyer du texte : ca roule:
Ensuite j'envoie un fichier: ca roule mais c'est extrêmement long, il pédale dans le semoule c'est bizarre.
ensuite j'envoie du texte, et en debug je remarque que ma socket d'envoi de message est à CONNECTED=FALSE! donc apparemment le fait d'envoyer le fichier à eu un impacte sur ma socket Message mais pourquoi?
En voyant ma socket message à false, j'ai ajouté 2 ligne de code pour la recréer :
Et bien comme je l'ai di précédemment , c'est ma scket de fichier qui l'a réceptionné alors que c'est même pas le même port.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 sockConnection = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); sockConnection.Connect(ctDestinataire.Ip,8765);
Merci de m'aider
Partager