Hello all

I'm using a bit of very simple code to query a game server using a UDP
packet. It works the fine time I run it but then when I run it again straight
away it fails with..

"A message sent on a datagram socket was larger than the internal message
buffer or some other network limit, or the buffer used to receive a datagram
into was smaller than the datagram itself"

I reckon it's because the socket is not closing properly so is dtill open
when I run it a second time. I assume this is down to lingeroption but I
can't seem to set this to false as the syntax on msdn doesn't seem to work.
Could someeone give me a hand with this please? My code is below...

'SERVER QUERY
Dim A2S_SERVERQUERY_GETCHALLENGE() As Byte = {&HFF, &HFF, &HFF,
&HFF, &H57}

'DECLARE ENDPOINTS
Dim localIPEndPoint As IPEndPoint = New IPEndPoint(0, 0)
Dim remoteIPEndPoint As IPEndPoint = New
IPEndPoint(IPAddress.Parse("192.168.0.6"), 27015)
Dim remoteEndPoint As EndPoint = CType(remoteIPEndPoint, EndPoint)

Dim s As Socket = New Socket(AddressFamily.InterNetwork,
SocketType.Dgram, ProtocolType.Udp)

'BIND TO LOCAL PORT
s.Bind(localIPEndPoint)

'SET SOCKET TIMEOUT TO 1 SECOND
s.SetSocketOption(SocketOptionLevel.Socket,
SocketOptionName.ReceiveTimeout, 1000)

'SEND QUERY STRING
s.SendTo(A2S_SERVERQUERY_GETCHALLENGE, remoteEndPoint)

Dim return_bytes(s.Available) As Byte
s.Receive(return_bytes, 0, s.Available, 0)

'CLOSE SOCKET
s.Close()

Re: Socket works fine first time, fails second time by Vadym

Vadym
Tue Feb 21 06:23:44 CST 2006

SGVsbG8sIEJlbiENCg0KIEJIPiAgICAgICAgICdTRU5EIFFVRVJZIFNUUklORw0KIEJIPiAgICAg
ICAgIHMuU2VuZFRvKEEyU19TRVJWRVJRVUVSWV9HRVRDSEFMTEVOR0UsIHJlbW90ZUVuZFBvaW50
KQ0KDQogQkg+ICAgICAgICAgRGltIHJldHVybl9ieXRlcyhzLkF2YWlsYWJsZSkgQXMgQnl0ZQ0K
IEJIPiAgICAgICAgIHMuUmVjZWl2ZShyZXR1cm5fYnl0ZXMsIDAsIHMuQXZhaWxhYmxlLCAwKQ0K
DQp0aGUgcHJvYmxlbSBoZXJlIGlzIHRoYXQgcy5BdmFpbGFibGUgbWF5IHJldHVybiAwIGFuZCBp
biBmZXcgbWlsbGlzZWNvbmRzICggd2hlbiBkYXRhIGFycml2ZSB0byB0aGUgaG9zdCApLCBpdCBj
YW4gc2hvdyBhdmFpbGFibGUgZGF0YS4NCkVpdGhlciB5b3UgaGF2ZSB0byBjaGVjayBzLkF2YWls
YWJsZSBpZiBpdCBpcyAwLCBvciBpbnRyb2R1Y2UgYmxvY2tpbmcgUmVjZWl2ZS9SZWNlaXZlRnJv
bSBjYWxsIHdpdGggZml4ZWQgYnVmZmVyIHNpemUuIA0KDQpSZWNlaXZlL1JlY2VpdmVGcm9tIHdp
bGwgYmUgaW4gdGhlIGxvb3AgdW50aWxsIGFsbCB0aGUgZGF0YSBpcyByZWNlaXZlZC4NCg0KLS0N
ClJlZ2FyZHMsIFZhZHltIFN0ZXRzeWFrDQp3d3c6IGh0dHA6Ly92YWRteXN0LmJsb2dzcG90LmNv
bQ==


Re: Socket works fine first time, fails second time by BenH

BenH
Tue Feb 21 07:01:27 CST 2006

Vadym

Thanks for taking the time to reply. Aah yes, you're right, I completely
missed that. I think it didn't occur to me as it always works fine the first
time so I thought that the code was fine in itself but it appears that this
is not the case.

Thanks again
Ben