Skapa ett TCP /IP-paket är viktigt när du vill att din C-program för att göra en aktiv anslutning till ett fjärr värd att skicka data fram och tillbaka . TCP /IP är ett nätverksprotokoll som ger tillförlitlig och beställde leverans av paket mellan två värdar . World Wide Web , e-post och filöverföring program använder alla TCP /IP-protokollet . Skapa en TCP /IP-paket genom att samla in data om en värd , vilket gör ett uttag ur dessa data och sedan skicka uttaget till fjärrvärden . Instruktioner
1
Öppna din C- filen i en editor som VC + + .
2
Lägg Winsock biblioteket till din kompilator projektets inställningar så att det kommer att länka ordentligt . I VC + + Detta görs genom att klicka på " Project " -menyn , klicka på " Inställningar ... ", klicka på " Länk " och skriva " ws2_32.lib " I rutan " Objekt /library modules . " Andra möjliga namn för Winsock biblioteket inkluderar " winsock32.lib " och " wsock32.lib . " Addera 3
Inkludera " Winsock2 " och " ws3tcpip " rubriker för att komma till socket -funktioner genom att lägga till följande kod på toppen av din fil :
# include
# include
4
Deklarera variabler som behövs för att skapa en TCP /IP-paket genom att lägga till följande kod i din funktion :
struct addrinfo tips , * res ,
int socket_descriptor ,
" addrinfo " structs kommer att lagra returvärdet av " getaddrinfo "-funktion. Den " socket_descriptor " är heltalet deskriptor att " socket " -funktionen kommer tillbaka
5
initiera variablerna genom att lägga till följande kod : .
Memset ( & tips , 0 , sizeof tips ) ;
hints.ai_family = AF_UNSPEC ;
hints.ai_socktype = SOCK_STREAM ;
" AF_UNSPEC " värde anger att adressen familjen för " getaddrinfo " -funktionen kan vara någon giltig typ , såsom IPv4 eller IPv6 . Den " SOCK_STREAM " indikerar en TCP-ström socket
6
Ring " getaddrinfo " funktionen genom att lägga till följande kod : .
Getaddrinfo ( " www.server.com " , " 3490 " , & knep & rES);
Ersätt" www.server.com " med den server som du vill ansluta till . Ersätt " 3490 " med den port du vill ansluta till . Den " getaddrinfo " funktionen samlar protokoll - oberoende information om en adress från sin värd namnet , som återvänder i " addrinfo " structs .
7
Skapa en TCP /IP- socket med " socket " -funktion , genom att lägga till följande kod :
socket_descriptor = socket ( res - > ai_family , res - > ai_socktype , res - > ai_protocol ) ,
" socket " -funktionen använder informationen återvänt från " getaddrinfo " -funktionen för att skapa en komplett sockel
8
Anslut till fjärrservern med " connect " -funktionen genom att lägga till följande kod : .
connect ( socket_descriptor , res - > ai_addr , res - > ai_addrlen ) ,
" connect " -funktionen tar ditt uttag , skickar den till den angivna adressen och skapar en aktiv anslutning till värd
9 .
Spara filen , kompilera och exekvera programmet för att skapa TCP /IP -paket .