Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Internet Allgemein Flatrates, Webspace, Protokolle und alles rund ums Internet hier rein.

UDP Server

Diskussion: UDP Server im Forum Internet Allgemein, in der Kategorie Web, Network & Multimedia Palace; Anzeige Also ich habe folgendes Problem: Ich habe mit HIlfe eines Tuturial einen UDP-Server geschrieben. Server(C++): Code: #include <winsock2.h> #include ...

Antwort
Alt 31.07.06, 14:32   #1 (permalink)
 
Registriert seit: 02.05.06
Megamorph Leistung: Facit NTK
Likes: 0
Standard UDP Server

Anzeige

Also ich habe folgendes Problem:
Ich habe mit HIlfe eines Tuturial einen UDP-Server geschrieben.
Server(C++):

Code:
#include <winsock2.h>
#include <stdio.h>
#include <stdlib.h>
//Prototypen
int startWinsock(void);
int main()
{
  long rc;
  SOCKET s;
  char buf[256];
  char buf2[300];
  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.sin_family=AF_INET;
  addr.sin_port=htons(1234);
  addr.sin_addr.s_addr=ADDR_ANY;
  rc=bind(s,(SOCKADDR*)&addr,sizeof(SOCKADDR_IN));
  if(rc==SOCKET_ERROR)
  {
    printf("Fehler: bind, fehler code: %d\n",WSAGetLastError());
    return 1;
  }
  else
  {
    printf("Socket an Port 1234 gebunden\n");
  }
  while(1)
  {
    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);  
    //Antworten
    sprintf(buf2,"Du mich auch %s",buf);
    rc=sendto(s,buf2,strlen(buf2),0,(SOCKADDR*)&remoteAddr,remoteAddrLen);
    if(rc==SOCKET_ERROR)
    {
      printf("Fehler: sendto, fehler code: %d\n",WSAGetLastError());
      return 1;
    }
    else
    {
      printf("%d Bytes gesendet!\n", rc);
    }
  }
  return 0;
}
int startWinsock(void)
{
  WSADATA wsa;
  return WSAStartup(MAKEWORD(2,0),&wsa);
}
Der funktioniert auch mit dem Clienten, aber ich möchte wenn der Client z.B. Hallo schreibt das der Server dann schreibt: Hi

Wie mache ich das???

Der Client zum Server(C++)
Code:
#include <winsock2.h>
#include <stdio.h>
#include <stdlib.h>

//Prototypen
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(1234);
  addr.sin_addr.s_addr=inet_addr("127.0.0.1");
  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);
    }
  }
    system("PAUSE");
    return 0;
}

int startWinsock(void)
{
      WSADATA wsa;
      return WSAStartup(MAKEWORD(2,0),&wsa);
      }
Megamorph ist offline   Mit Zitat antworten
Alt 31.07.06, 18:06   #2 (permalink)
 
Benutzerbild von ERit
 
Registriert seit: 31.03.05
ERit Leistung: Facit NTK
Likes: 0
Standard

Code:
char bufbuf[]="hi";

if(strstr(buf,"hallo"))
{
rc=sendto(s,bufbuf,strlen(buf2),0,(SOCKADDR*)&remoteAddr,remoteAddrLen);
}
lg
ERit ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 31.07.06, 18:46   #3 (permalink)
Themenstarter
 
Registriert seit: 02.05.06
Megamorph Leistung: Facit NTK
Likes: 0
Standard

dankeschön
Megamorph ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » Internet Allgemein » UDP Server
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Counter Strike Server/Server leistungen für Clans KaM!KoZe HaBo-Marktplatz 5 17.08.09 14:01
Datei von Server 1 nach Server 2 senden... junior48000 (Web-) Design und webbasierte Sprachen 3 16.10.07 18:10
Dateien von fremden Server auf eingenen Server kopieren KaM!KoZe (Web-) Design und webbasierte Sprachen 10 10.05.07 21:21
C++ Server/Client - Server empfängt nichts! jesus Code Kitchen 16 25.01.07 21:27
Suche Tools für Webserver, FTP-Server, Exchange Server etc. BuzzT Linux/UNIX 5 30.07.04 18:50


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61