j'ai quelques soucis avec l'utilisation des sockets :
afin de transferer des données en p2p, j'utilise les methodes Socket.BeginReceive, Socket.BeginSend, Socket.EndReceive, et Socket.EndSend.
Mon problème est simple : si l'un des programmes (serveur ou client) plante lors du transfert, ces methodes levent l'exception
(System.Net.Sockets.SocketException)
Une connexion existante a dû être fermée par l’hôte distant
Comment prévenir ce problème sans utiliser des try{}catch{} répétitifs (navrant pour les performances)?
précision : pourtant, je vérifie bien que le socket est connecté avant d'appeler une de ces methodes... exemple :
C#
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 if (!socket.Connected) { error(errorTypes.connexionLost); return; } socket.BeginReceive(buffer, 0, HEADER_SIZE, SocketFlags.None, new AsyncCallback(headerReceived), null);
Partager