I have an old vb6 desktop application which communicates with a mainframe server using socket (winsock 2) that i need to convert to .net. I found the small code which seems correct to me using System.Net.Socket. When running the console window just hang there showing blank.
Here is the connect functionCode:Dim s As Socket = ConnectSocket(server, port) If s Is Nothing Then Return "Connection failed" End If ' Send request to the server. Dim numSent As Integer numSent = s.Send(bytesSent) Dim bytes As Int32 Do bytes = s.Receive(bytesReceived, bytesReceived.Length, 0) Console.WriteLine(bytes.ToString()) Loop While bytes > 0
So I run wireshark on the port the app is communicating (port in the code above) I can see package sent and received with connectSocket, but no package is detected with s.Send(bytesSent). I wonder why.Code:Private Function ConnectSocket(server As String, port As Integer) As Socket Dim s As Socket = Nothing Dim hostEntry As IPHostEntry = Nothing ' Get host related information. hostEntry = Dns.GetHostEntry(server) ' Loop through the AddressList to obtain the supported AddressFamily. This is to avoid ' an exception that occurs when the host host IP Address is not compatible with the address family ' (typical in the IPv6 case). Dim address As IPAddress For Each address In hostEntry.AddressList Dim endPoint As New IPEndPoint(address, port) Dim tempSocket As New Socket(endPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp) tempSocket.Connect(endPoint) If tempSocket.Connected Then s = tempSocket Exit For End If Next address Return s End Function




Reply With Quote
