Bonjour, je vous soumet mon nouveau problème de socket.
La connexion s'établit correctement par contre je reste bloqué sur le read



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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
Imports System
Imports System.Net
 
 
Module Module1
 
 
    Public Class Client
        Shared Sub Main()
 
            Try
 
                Dim enc As System.Text.Encoding = System.Text.Encoding.UTF8
 
                Dim host As String = "10.120.96.115"
                Dim port As Integer = 5011
                addresse = IPAddress.Parse(host)
                Dim tcp As Sockets.TcpClient
                tcp = New Sockets.TcpClient()
                tcp.Connect(addresse, port)
 
                Dim ns As Sockets.NetworkStream
                ns = tcp.GetStream()
 
                Dim sendMsg As String = "Toto a soif"
                If sendMsg = "" Then
                    tcp.Close()
                    Return
                End If
                Dim sendBytes As Byte() = enc.GetBytes(sendMsg)
                ns.Write(sendBytes, 0, sendBytes.Length)
 
                Dim ms As New System.IO.MemoryStream
                Dim resBytes(256) As Byte
                Dim resSize As Integer
                If ms.CanRead Then
                    Do
                        resSize = ms.Read(resBytes, 0, resBytes.Length)
                        If resSize = 0 Then
                            Return
                        End If
                        ms.Write(resBytes, 0, resSize)
                    Loop While ns.DataAvailable
                    Dim resMsg As String = enc.GetString(ms.ToArray())
                Else
                    MsgBox("le network stream ne peut pas être read")
                End If
                ms.Close()
 
                tcp.Close()
 
            Catch ex As Exception
                Dim a As Int16
                a = a + 1
 
            End Try
        End Sub
    End Class
 
    Class Server
        Public Shared Sub Main()
            Dim enc As System.Text.Encoding = System.Text.Encoding.UTF8
 
            Dim host As String = "10.120.96.176" '"localhost"
            Dim port As Integer = 5013
            addresse2 = IPAddress.Parse(host)
 
            '        Dim ipAdd As System.Net.IPAddress = System.Net.Dns.Resolve(host).AddressList(0)
            Dim listener As New System.Net.Sockets.TcpListener(addresse2, port)
            listener.Start()
 
            Dim tcp As System.Net.Sockets.TcpClient = listener.AcceptTcpClient()
            Dim ns As System.Net.Sockets.NetworkStream = tcp.GetStream()
 
            Dim ms As New System.IO.MemoryStream
            Dim resBytes(256) As Byte
            Dim resSize As Integer
            Do
                resSize = ms.Read(resBytes, 0, resBytes.Length)
                If resSize = 0 Then
                    Return
                End If
                ms.Write(resBytes, 0, resSize)
            Loop While ns.DataAvailable
            Dim resMsg As String = enc.GetString(ms.ToArray())
            ms.Close()
            Console.WriteLine(resMsg)
 
            Dim sendMsg As String = resMsg.Length.ToString() ' 
            Dim sendBytes As Byte() = enc.GetBytes(sendMsg)
            ns.Write(sendBytes, 0, sendBytes.Length)
 
            tcp.Close()
            listener.Stop()
        End Sub
    End Class
 
 
End Module