Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » WinSock sendet nix

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
25.09.2004, 22:31 Uhr
~Schwabi
Gast


Hallo,
hab mir grad im Inet ein Tut zu Winsock und UDP durchgelesen und dessen Code ausprobiert.
Nur leider passiert da nix. Das heißt das Prog sagt mir zwar Daten gesendet (auf Localhost) aber beim empfangen krieg ich mit "WSAGetLastError()" den Fehlercode 10054 zurrück. Damit kann ich aber leider nix anfangen. Einer von euch???
Dann hab ich spaßeshalber mal "Ethreal" angeschmissen (schneidet Netzverkehr mit) un hab ma geguckt was passiert, aber wie ich so guck seh ich garnix. Mir kommts so vor als wenn mein Proggi nich wirklich was sendet.

Ich geb hier eben mal mein Code durch:

C++:
#include <stdio.h>
#include <windows.h>
#include <stdlib.h>


int startWinsock(void);

int main()

{

  long rc;

  SOCKET s;
  char buf[256];
  SOCKADDR_IN addr;
  SOCKADDR_IN remoteAddr;
  int         remoteAddrLen=sizeof(SOCKADDR_IN);

  rc=startWinsock();

  if(rc!=0)

  {

    printf("Fehler: startWinsock, fehler code: %d\n",rc);    return 1;

  }

  else

  {

    printf("Winsock gestartet!\n");

  }

  //UDP Socket erstellen

  s=socket(AF_INET,SOCK_DGRAM,0);

  if(s==INVALID_SOCKET)  
  {    
      printf("Fehler: Der Socket konnte nicht erstellt werden, fehler code: %d\n",WSAGetLastError());
      return 1;  
  }  
  else  
  {    
      printf("UDP Socket erstellt!\n");  
  }  
  
    // addr vorbereiten

  addr.sin_family=AF_INET;

  addr.sin_port=htons(80);

  addr.sin_addr.s_addr=inet_addr("192.168.1.2");

  while(1)

  {

    printf("Text eingeben: ");

    gets(buf);
    
    rc=sendto (s,buf,strlen(buf),0,(SOCKADDR*)&addr,sizeof(SOCKADDR_IN));

    if(rc==SOCKET_ERROR)

    {

      printf("Fehler: sendto, fehler code: %d\n",WSAGetLastError());

      return 1;

    }

    else

    {

      printf("%d Bytes gesendet!\n", rc);

    }

    rc=recvfrom(s,buf,256,0,(SOCKADDR*)&remoteAddr,&remoteAddrLen);

    if(rc==SOCKET_ERROR)

    {

      printf("Fehler: recvfrom, fehler code: %d\n",WSAGetLastError());

      return 1;

    }

    else

    {

      printf("%d Bytes empfangen!\n", rc);

      buf[rc]='\0';

      printf("Empfangene Daten: %s\n",buf);

    }

  }





  return 0;

}


int startWinsock(void){  WSADATA wsa;  return WSAStartup(MAKEWORD(2,0),&wsa);}





Hoffe mir kann einer helfen.

Grüße Schwabi

Dieser Post wurde am 25.09.2004 um 22:32 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
25.09.2004, 22:35 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Kann es sein das du versucht innerhalb deiner Anwendung sozusagen erst zu senden und dann das gleich wieder zu empfangen? Das funzt nicht, da erst versand wird, dann kriegt das programm "Network unreachable" da ja es selbst noch nicht empfangsbereit ist.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
26.09.2004, 01:02 Uhr
~Schwabi
Gast


Ah ja, dann wird mir so einiges klar.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: