Avatar billede bif_pin Nybegynder
16. november 2003 - 15:46 Der er 6 kommentarer og
1 løsning

To socket spørgsmål

Jeg sidder her med et stk socket kode som virker fint til mine formål. Dog har jeg lånt koden og revideret den. Men der er 2 ting som jeg gerne ville vide mere om i min kode.

1:
Er der en venlig sjæl som vi forklare mig parametrene i funktionen WSAStratup. Hvad er det for en slags word som MAKEWORD(1,1) består af?

2:
Nederst i koden bruger jeg sleep(2000). Programmet virker ikke uden den så derfor ville jeg godt vide hvad den har af betydning. 

kode:
--------------------
  //Registrere version af socket
WSAStartup(MAKEWORD(1,1), &WSAData );

Server_Sock = socket(AF_INET, SOCK_STREAM, 0);   
Server_Adr.sin_family = AF_INET;     
Server_Adr.sin_port = htons(PORT);   
Server_Adr.sin_addr.s_addr = inet_addr(IP);

// Kalder connect() for at opkoble sig til en server
connect(Server_Sock, (struct sockaddr *) &Server_Adr, sizeof(struct sockaddr) );

//Informationerne bliver sendt fra UdBuffer
send(Server_Sock, UdBuffer, Meld_Len , 0);

Sleep(2000);

// bryder socket forbindelsen
closesocket( Server_Sock );

--------------------------------------------

På forhånd tak.

MVH Tom.
Avatar billede driis Nybegynder
16. november 2003 - 15:57 #1
WSAStartup starter Windows sockets op, som du nok ved. Den første parameter skal være et word, hvor MSByte er major version og LSByte er minor version nummer af Windows Sockets, som du skal bruges. MAKEWORD laver netop et word hvor hhv. MSB og LSB er de 2 parametre.

Dit første kald starter altså Windows sockets op, hvis version 1.1 som minimum er til rådighed.
Avatar billede driis Nybegynder
16. november 2003 - 15:59 #2
2)
Jeg tror det er fordi du ellers bryder forbindelsen før du er færdig med at sende. send(), som du kalder lige før sætter data i kø til at blive sendt, men det tager lidt tid, før de rent faktisk er blevet sendt. Afhængig af længden af UdBuffer, tror jeg godt du kan sætte Sleep tiden lidt ned.
Avatar billede bif_pin Nybegynder
16. november 2003 - 16:10 #3
Tusind tak for dine svar.

Men hvad er MSByte og LSByte. Vil det sige at de begge skal være minimun version 1.1?

MVH Tom
Avatar billede arne_v Ekspert
16. november 2003 - 16:21 #4
MS = Most Significant
LS = Least Significant

0x1234 => MS = 0x12 & LS = 0x34
Avatar billede bif_pin Nybegynder
16. november 2003 - 16:29 #5
Jeg siger tak til jeg begge og hvis du også skal have nogle points arne_v skal du lige lægge et svar.


MVH Tom
Avatar billede arne_v Ekspert
16. november 2003 - 16:31 #6
Nej - jeg kan vist ikke have fortjent point i det her spørgsmål.

Giv dem til Driis.
Avatar billede bif_pin Nybegynder
16. november 2003 - 16:34 #7
OK Arne_v. Du er en fin fyr.

Her er dine fortjente points Driis.

MVH Tom
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester