Bonjour,


Alors voila je developpe une petite application client / serveur, en utilisant les socket.

Mon probleme est le suivant :
- je connecte mon serveur et le met en attente d'une connection client
- la un client se connecte, ca declenche mon evenement delegate et je coupe l'attente en faisant EndAccept
- je coupe mon socket serveur en faisant 'Close' -> OK

maintenent si je coupe le socket alors qu'aucun client ne s'est connecter, donc toujours en attente de client la j'ai une erreur...
d'ou ma question : comment mettre fin a l'ecoute du serveur?
j'ai plusieur choses, couper le client, le serveur ... mais rien n'y fait.

mon code :
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
 
Imports System.Net
Imports System.Net.Sockets
 
Public Class SERVEURclass
 
 
    Public Event OnServerConnection(ByVal localIP As String, ByVal localPORT As Integer)
    Public Event OnServerDisconnection()
    Public Event OnServerNewClientConnected(ByVal remoteIP As String, ByVal remotePORT As Integer)
 
    Private serv_SockListen As Socket
    Private serv_SockClient As Socket
 
    Private serv_Ip As String
    Private serv_Port As Integer
 
 
 
    Public Sub New(ByVal IP As String, ByVal PORT As Integer)
 
        serv_Ip = IP
        serv_Port = PORT
 
    End Sub
 
 
 
    Public Function Connect()
 
        Dim SERVEUR_ep As IPEndPoint
 
        serv_SockListen = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
        SERVEUR_ep = New IPEndPoint(IPAddress.Parse(serv_Ip), serv_Port)
 
        serv_SockListen.Bind(SERVEUR_ep)
 
        serv_SockListen.Listen(1)
 
        serv_SockListen.BeginAccept(AddressOf New_Client, serv_SockListen)
 
        'EVENT1
        RaiseEvent OnServerConnection(serv_Ip, serv_Port)
 
        SERVEUR_ep = Nothing
 
    End Function
 
    Public Function Disconnect()
 
        'serv_SockListen.Close()
 
        'EVENT2
        RaiseEvent OnServerDisconnection()
 
    End Function
 
    Private Function New_Client(ByVal asyncResult As IAsyncResult)
 
        serv_SockClient = serv_SockListen.EndAccept(asyncResult)
 
        'EVENT3
        RaiseEvent OnServerNewClientConnected(serv_SockClient.RemoteEndPoint.Serialize.ToString, 10)
 
    End Function
 
 
 
End Class