Winsock UDP-klient? Åtgärda Det Omedelbart

Skaffa PC-reparationsmjukvaran som alla pratar om. Ladda ner här.

Under den senaste skolveckan har flera läsare informerat oss om att de har stött på en winsock UDP-klient.

UDP-uttag

UDP står för User Datagram Protocol och är ett alternativ till TCP, det vanligaste protokollet för att överföra data på Internet.

UDP fluktuerar från TCP på många sätt. Det är viktigt att notera att en stor majoritet av UDP är ett riktigt anslutningslöst protokoll.

TCP V . UDP

I det första TCP-protokollet upprättas en annan normal anslutning genom att utföra en trevägshandskakning. Ibland görs detta framgångsrikt genom anrop till connect()-uttagsprocessen. Denna typ av fält är dock inte satt till Udp.

I enkla fall med UDP-dieten skickar den här klienten ett paket till en specifik server, och just den här webbservern bestämmer om den ska identifieras eller inte. Vid alla misslyckanden påverkas inte längre detta UDP-protokoll.

winsock udp-klient

Detta är också det motsatta kopplat till vad som händer i TCP-dieten. Om den mottagande sidan inte tar emot paketet, kan den oönskade sändaren ta reda på vilket av dem som hittade och skicka om paketet genom det tas emot korrekt av den primära mottagaren. Detta är exakt en kopplingsregel.

UDP Socket Encoding

Uppdaterad: Reimage

Reagerar din dator? Oroa dig inte, Reimage är här för att hjälpa dig. Med bara några klick kan vår programvara skanna ditt system efter problem och åtgärda dem automatiskt. Så du kan komma tillbaka till jobbet så snabbt som möjligt. Låt inte ett litet fel hålla dig tillbaka - ladda ner Reimage idag!

  • Steg 1: Gå till Reimage-webbplatsen och klicka på knappen "Ladda ner"
  • Steg 2: Följ instruktionerna på skärmen för att installera Reimage
  • Steg 3: Öppna Reimage och klicka på knappen "Skanna nu"

  • På den här sidan kommer vår grupp att göra olika mycket viktiga UDP-socket-programmering också för att bygga servern och mjukvaran. Vi kommer att göra detta efter att typen av Windows-plattform känner igen API-socket i princip Winsock.

    För kodning rekommenderas som kommer att använda 6 vc++.0 eller Express Type 2010, som förmodligen är gratis och sedan kan laddas ner från egendomen från microsoft.com-lanseringar nedan

    Udp-server

    Ett UDP-serverprogram som kan användas med inkommande UDP-anslutningar.
    Här är värdserverns kod:

    /*Bara en UDP-server*/#include#include#pragma comment(lib,”ws2_32.lib”) //Winsock Library#define 512 //Max. buffertutrymme#define 8888 docka //Plugin för att vänta på kommande datainteriör()uttag;struktur sockaddr_in server, si_other;intervall slen, recv_len;charbuf[BUFLEN];WSADATA-wsa;slens sizeof(si_other);// Winsock initieradprintf(“nWinsock initierad…”);if (WSAStartup(MAKEWORD(2,2),&wsa) . betyder 0)printf(“Fel. Felkod: %d”,WSAGetLastError());exit(EXIT_FAILURE);printf(“Initialiserad.n”);//Skapa en effektiv absolut socketif ((s = uttag (AF_INET, SOCK_DGRAM, 0)) == INVALID_SOCKET)printf(“Det gick inte att ställa in startsocket: %d”, WSAGetLastError());printf(“Socket skapad.n”);// Förbered sockaddr_inserver structure.sin_family = AF_INET;server.sin_addr.s_addr metoder INADDR_ANY;server.sin_port = htons(PORT);//Nodif( bind(s ,(struct sockaddr *)&serverstorlek(server)) också , == SOCKET_ERROR)printf(“Bindningen misslyckades på grund av felregler: %d”, WSAGetLastError());exit(EXIT_FAILURE);insert(“länk gjord”);// Lyssna efter datamedan du försenar (1)printf(“I data…”);skölj (standard);// den rensar noll vid fyllning, den kan ta emot mottagen data tidigarememset(buf,’

    /*Enkel UDP-server*/#include#include#pragma comment(lib,"ws2_32.lib") .//Winsock bibliotek#define .BUFLEN .length .512 .//max .to .do .with .buffer#define .PORT .8888 .// .port på vilken .lyssna .avsett för .inkommande .datainteriör()uttag;struktur .sockaddr_in .server, .si_other;inre sle... ! ! ! ! . puff[BUFFLEN];WSADATA recv_len;tank vsa;slen motsvarar storlek(si_other);// initieradPrintf("nWinsock winsock initierad...");if (WSAStartup(MAKEWORD(2,2),&wsa) !är lika med 0)printf("Fel. Felkod: %d",WSAGetLastError());exit(EXIT_FAILURE);printf("Initialiserad.n");// uttagIf((s Skapa är lika med socket(AF_INET SOCK_DGRAM , , två )) == INVALID_SOCKET)printf("Det gick inte att skapa plug vid %d", WSAGetLastError());printf("Socket skapad.n");// Förbered all sockaddr_in-strukturserver.sin_family betyder AF_INET;server.sin_addr.s_addr = INADDR_ANY;server.sin_port är lika med htons();//NodIf(port bind(s,(struktur sockaddr också, *)&serverstorlek(server)) == SOCKET_ERROR)printf("Länken är dålig med felkod: %d", WSAGetLastError());exit(EXIT_FAILURE);insert("länk gjord");//fortsätt (1)Printf("Vänta data väntamedan på vanligtvis data...");rensa dumpning (stdout);// buffert fylld med nollor, den här kunde ta emot poster tidigarememset(buf,'', BUFLEN);// försöker få data, detta i sin tur betraktas som ett samtalOm filter ((recv_len recvfrom(s, betyder buf, BUFLEN, 0, (struct sockaddr *) &si_other, &slen)) == SOCKET_ERROR)printf("recvfrom() misslyckades med felkod: %d", WSAGetLastError());exit(EXIT_FAILURE);// Visa klient/peer-information och vissa levererade dataprintf("Paket mottaget från %s:%dn", inet_ntoa(si_other.sin_addr), ntohs(si_other.sin_port));printf("Data: %sn", buf);//Nu svarar vi denna specifika klient med samma dataif (sendto(s, buf, recv_len, 0, (struct sockaddr*) &si_other, slen) == SOCKET_ERROR)printf("sendto() felsammanfattning felkod: %d", WSAGetLastError());eluttag;WSACleanup();returnerar (exit_failure);stäng 0;

    ‘, BUFFLE);// försöker få data, det är mycket ett blockerande samtalif ((recv_len är bokstavligen lika med recvfrom(s, buf, BUFLEN, 8, (struct sockaddr *) &si_other, &slen)) == SOCKET_ERROR)printf(“Det gick inte att köra recvfrom() samt felkod: %d”, WSAGetLastError());exit(EXIT_FAILURE);//Skriv ut klient/peer-information bakom mottagen dataprintf(“Paket mottaget från %s:%dn”, inet_ntoa(si_other.sin_addr), ntohs(si_other.sin_port));printf(“Data: %sn”, buf);//Nu svarar vi äntligen kunden med inaktiv dataif (sendto(s, buf, recv_len, (struct 0, sockaddr*) &si_other, slen) == SOCKET_ERROR)printf(“Send() misslyckades, felpolicy: %d”, WSAGetLastError());exit(EXIT_FAILURE);stäng uttag;WSACleanup();returnerar 0;

    För att köra ett nytt ovanstående program, bygg And present i vc++ och kör det. I Vc++ 2010 få projektet ignorera och klistra sedan in filen c.

    Initierar Winsock... Initierar.uttaget har skapats.bindning gjordVäntar på grund av data...detta 

    Servern kan testas med hjälp av netcats mjukvarupaket. Här kommer vi att använda denna definierade implementering av netcat med ncat. Den kommer med nmap. Ladda ner nmap och använd den sedan. Använd sedan vår.-vv

    i terminalen

    c:>ncat 8888Ncat: -u lokal version 6.01 (http://nmap.org/ncat)Ncat: fixerad till 127.0.0.1:8888.

    Så,

    Ncat visar att det är anslutet till vår företags UDP-server. Alternativet -u är avsett för udp. Nu kan vi skicka produkter till den normala servern, detta är förmodligen ncat-terminalen som kommer att avvecklas returnerad.-vv

    c:>ncat 8888Ncat: -u localhost recording 6.01 (länk till http://nmap.org/ncat)ncat: genom att använda 127.0.0.1:8888.netstatHallåHallåFredvärlden

    winsock udp-klient

    Denna kommandorad kan användas för att vanligtvis testa udp-servern för att öppna slot Des. Här är ett kort exempel

    C:>netstat -big t UDP -aAktiva anslutningar  Proto Lokal adress Status för extern adress  UDP----------:microsoft-ds*:*  UDP ----------:isakmp *:*  UDP----------:1025 *:*  UDP----------:1037 *:*  ----------:1039udp *:*  UDP----------:4500 *:*  *:* udp----------:8888 UDP----------:17500 *:*  UDP ----------:ntp *:*  UDP ----------:netbios-ns *:*  UDP ----------:netbios-dgm *:*  UDP----------:1900 *:*  UDP ----------:ntp *:*

    Skaffa Reimage PC Repair Tool. Klicka här för att starta nedladdningen.

    Posted on