Bonjour a tous , je viens d'arriver sur le forum suite à un soucis que j'aimerais résoudre:
Depuis quelques jour j'essai de faire un client et un serveur connectés via le protocole TCP , j'utilise pour cela une classe trouvée sur la toile.
Pour l'instant sa marche correctement, la connexion entre mon client et mon serveur se fait sans soucis, lorsque le serveur est lancé il est affiché dans un listview du client.
A l'inverse , lorsque le serveur est éteint j'aimerai que le client l’enlève du listview.
Pour cela j'ai essayer de décortiquer le sub concerné pour trouver ou la déconnection est détectée et j'ai trouvé qu'il s'agit de l'exception, seulement lorsque je veux que l'exception execute un sub de la classe Form1, cela ne marche pas.
voila le sub de la classe
et voici le sub en question a éxecuter dans la classe principale du programme (Form1)
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 ' This is the callback function for TcpClient.GetStream.Begin. It begins an ' asynchronous read from a stream. Private Sub StreamReceiver(ByVal ar As IAsyncResult) Dim BytesRead As Integer Dim strMessage As String Try ' Ensure that no other threads try to use the stream at the same time. SyncLock client.GetStream ' Finish asynchronous read into readBuffer and get number of bytes read. BytesRead = client.GetStream.EndRead(ar) End SyncLock ' Convert the byte array the message was saved into, minus one for the ' Chr(13). strMessage = Encoding.ASCII.GetString(readBuffer, 0, BytesRead - 1) RaiseEvent LineReceived(Me, strMessage) ' Ensure that no other threads try to use the stream at the same time. SyncLock client.GetStream ' Start a new asynchronous read into readBuffer. client.GetStream.BeginRead(readBuffer, 0, READ_BUFFER_SIZE, AddressOf StreamReceiver, Nothing) End SyncLock Catch e As Exception Dim testing As New Form1 testing.essai(BytesRead) ' MsgBox(e.Message) End Try End Sub
Merci par avance de m'aider a comprendre mon erreur, n'hésitez pas a me dire si ce n'est pas tres claire, je ne maitrise pas vraiment le vocabulaire approrié...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Public Sub essai(ByVal bytes As Integer) ListView1.Items.Item(bytes).Remove() End Sub
Partager