以下是我正在使用的套接字的问题:
Public Sub Connect(ByVal server As String, ByVal port As Integer)
Dim IP As IPAddress = IPAddress.Parse(server)
Dim EP As IPEndPoint = New IPEndPoint(IP, port)
sock.Bind(EP)
sock.Connect(server, port)
End Sub
套接字声明如下,位于代码顶部:
Dim sock As Socket
这里有什么问题?它表示Object引用未设置为对象的实例,这是一个NullReferenceException。
感谢您的帮助!顺便说一下,这是在vb.net中,我已经导入了正确的命名空间。
答案 0 :(得分:3)
代码是否曾为Sock变量分配新的Socket实例?听起来像对象是null因为没有对变量进行任何赋值。
修改强>
初始化套接字可以这样做:
sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Udp)
假设您正在使用IPV4,并且您希望像流一样从套接字读取和写入字节。至于协议......我在这里指定了UDP,但这取决于你想要与之交谈的内容。
答案 1 :(得分:0)
Dim MonSocketClient As New Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)