webForumDet fria alternativet

Winsock-kontrollen

.NET

4 svar · 204 visningar · startad av Gein

Medlem sedan sep. 20005 700 inlägg
Frågan#1

Om jag använder mej av winsock-kontrollen samt UDP-protokoll och får ett inkommande paket från någon. Finns det då något sätt att se vilken Source Port (local port) användaren hade som skickade paketet? Det måste ju gå att få fram, så att jag sen kan svara med mitt paket, som då ska skicka till hans local port (min remoteport ska vara = hans local port). Vid inkommande kan jag kolla winsock.RemoteHostIP för att få fram vilket ip paketet kom ifrån, men det visare inte vilken port det va. Hur får man fram detta?

Medlem sedan juni 20022 599 inlägg
#2

Detta sköts automatiskt och är inget du behöver göra
manuellt. När ett paket anländer så sätts mottagarens
winsock.remotePort till sändarens winsock.localPort.

Åtminstone om man får tro Microsoft:

http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q192564&

Medlem sedan sep. 20005 700 inlägg
#3

jo, fick liknande svar av en annan.. hm jag måste nog tänka lite tror jag. Verkar som om jag inte riktigt förstår hur UDP funkar än.. *klurar*

Medlem sedan juni 20022 599 inlägg
#4

TCP:

Du kan bara skicka när du är connectad.
När du skickar så går paketen till den port o IP du är connectad mot (naturligtvis).

UDP:

Du kan skicka när som helst (det finns inget som heter connection).
När du skickar går paketen som default till den port o IP som senast skickade till dig.
Vill du inte ha detta beteende måste du manuellt sätta .RemoteHostIp
och .RemotePort ögonblicket innan du anropar .Send.

Vet inte hur klart det här blev, men förhoppningsvis blev du inte mer förvirrad iaf.

Medlem sedan sep. 20005 700 inlägg
#5

Ja, tackar, din länk gjorde susen också!

When a UDP message is received by a Winsock control, the RemoteHostIP property is set to the IP address of the remote machine, and the RemotePort property is set to the IP port of the remote UDP application. The previous properties values are overwritten.

Det va lite det här jag va ute efter. jag förstod inte hur den fick reda på vilken port att svara på. men nuså! :)
tusen tack niko! Ska fortsätta lite nu får vi se om det löser sej! :)

262 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)