2009-09-29 3 views
1

Здесь проблема с гнездом, имеющим Я:Binding & подключения с помощью розетки в vb.net

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 

Что здесь не так? Он говорит, что ссылка объекта не установлена ​​на экземпляр объекта, который является исключением NullReferenceException.

Благодарим за помощь! Это, кстати, в vb.net, и я импортировал правильные пространства имен.

ответ

3

Предоставляет ли код когда-либо новый экземпляр Socket для переменной Sock? похоже, что объект имеет значение null, поскольку в переменную не было присвоено никакого назначения.

EDIT
Инициализация сокет можно сделать так:

sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Udp) 

Предполагая, что вы используете ipv4 и что вы хотите, чтобы читать и писать байты из гнезда, как поток. Что касается протокола ... Я указал UDP здесь, но это будет зависеть от того, с чем вы пытаетесь поговорить.

+0

K, что такое правильный синтаксис? Я не знал, что AddressFamily или SocketType или ProtocolType указать. – Cyclone

0
Dim MonSocketClient As New Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp) 
Смежные вопросы