Sorry about the double creation. Changing the bind to 1234 does bind PART of
the local port 1234. If I issue a sendto as in my code Sendto(...,1234), the
actual setup of the packet from vb.net shows a send source port of 2011 and
a send dest port of 1234. which is only halfway correct, as verified by
windows network monitor. This is def. a BUG.
I am trying to do something simple. I send to a remote machine(nonwindows)
with a simple UDP packet. I used the code to send 2 bytes of data on port
9001. The remote receives the data but transmits a packet back to me on the
REAL send source port the VB program sent it on which is NOT 9001, it looks
like a windows assigned port. In fact the MSDN says it if you dont assign
the SEND SOURCE PORT for the packet , it will assign a port in the
2000-65535 range. VB is only setting the dest port part of the packet, not
the source send port part of it. I you actually fired the code off and
lookup at it with a sniffer, this happens every time. I am very
frustrated.Since windows is assigning a random port, I cant use the bind to
figure out what port to listen on. Using a sniffer it is easy to see this
bug, using MSDN code or mine, Ive tried several examples from MSDN with same
results.
Any more ideas?
Thanks BUC
"Henning Krause [MVP - Exchange]" <(E-Mail Removed)>
wrote in message news:(E-Mail Removed)...
> Hello,
>
> 1. Why are you creating the sockets two times?
>
> 2. Add a txSocket.Bind(new IPEndPoint(IPAddress.Any), 1234)
>
> This will bind the socket to the local port 1234, and should solve your
> issue.
>
> Best regards,
> Henning Krause
>
> "bucrepus" <(E-Mail Removed)_remove> wrote in message
> news:%(E-Mail Removed)...
>> Dim UpdateIP As IPAddress
>> Dim packet(2) As Byte
>> Dim txSocket As Socket = New Socket(AddressFamily.InterNetwork,
>> SocketType.Dgram, ProtocolType.Udp)
>> 'load some data of some sort
>> packet(0) = 1 : packet(0) = 1
>> UpdateIP = IPAddress.Parse("192.168.0.100")
>> txSocket = New Socket(AddressFamily.InterNetwork, SocketType.Dgram,
>> ProtocolType.Udp)
>> Dim txPLCEP As New IPEndPoint(UpdateIP, 9001)
>> txSocket.SendTo(packet, txPLCEP)
>> txSocket.Close()
>> txSocket = Nothing
>>
>> 'packet is transmitted to 192.168.0.100 with a source dest port of 9001
>> and a source send port of 2039. Depending on the machine I test this code
>> on the source send port randomly changes around the 2000 range. verified
>> with 2 diff packet sniffers including W2k3 server net monitor.
>>
>> Thanks..
>> N\BUC
>>
>>
>>
>>
>> "buc" <(E-Mail Removed)_remove> wrote in message
>> news:(E-Mail Removed)...
>>> Why does VB.NET UDP sockets send data on random ports?. If I set a
>>> simple socket up to transmit a UDP packet on a port, look at the packet
>>> with a sniffer, the actual packets source port and dest.port are diff.
>>> The packets destination port is correct, but the packets source port it
>>> is actually sent from is random. Why? How can I figure out the actual
>>> source port windows is using, not what the vb.net socket is fake
>>> reporting?
>>> Thanks BUC
>>>
>>>
>>
>>
>
|