Pro-Linux.de

Pro-Linux

Pro-Linux Diskussions- und Hilfeforum
Aktuelle Zeit: 19. Nov 2018 0:37

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 2 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Netzwerk Kommunikation
BeitragVerfasst: 08. Nov 2008 22:16 
Offline

Registriert: 08. Nov 2008 15:45
Beiträge: 1
Im Unterricht programmieren wir ein Poker-Spiel.
Ich sollte nun das clientseitige Protokoll schreiben. Der folgende Code soll eine Verbindung zum Server (Host: EiMi, Port: 8000) herstellen.
Da keine Verbindung zustande kommt, ist die Frage, ob das Ganze richtig implementiert ist? Kann der fehlerhafte Verbindungsaufbau auch daher kommen, dass mein Programm unter Linux läuft und das serverseitige unter Windows?
Code:
#include <stdio.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#include <netinet/in.h>
#include <syslog.h>
#include <sys/time.h>


#include <arpa/inet.h>


#include <errno.h>
#include <string.h>
#include <iostream>
using namespace std;



typedef struct &#123;
  struct sockaddr_in sin;
  unsigned int sinlen;
  int bindflag;
  int sd;
&#125; SOCKET;


int sclient&#40;SOCKET *sp, char *name, int port&#41;
&#123;
  struct hostent *hostent;
  struct in_addr addr;

  addr.s_addr = inet_addr&#40;"192.168.1.1"&#41;;
  
if&#40;&#40;hostent=gethostbyaddr&#40;&#40;char*&#41;&addr, sizeof&#40;addr&#41;, AF_INET&#41;&#41;==0&#41;
&#123;
	return -2;	
&#125;
  //if  &#40;&#40;hostent=gethostbyaddr&#40;&#40;char*&#41;&addr, sizeof&#40;addr&#41;, AF_INET&#41;&#41;==0&#41;
  //  return -1;



  sp->sin.sin_family=&#40;short&#41;hostent->h_addrtype;
  sp->sin.sin_port=htons&#40;&#40;unsigned short&#41;port&#41;;
  sp->sin.sin_addr.s_addr=*&#40;unsigned long *&#41;hostent->h_addr;
  //connect&#40;&#41;
  if  &#40;&#40;connect&#40;sp->sd,&#40;struct sockaddr *&#41;&sp->sin, sp->sinlen&#41;&#41;==-1&#41;&#123;
    syslog&#40;LOG_INFO,"client-socket&#58; cannot connect to&#58; %s at %d",name,port&#41;;

    return -1;
  &#125;

  return sp->sd;
&#125;



int main&#40;void&#41;
&#123;
  printf&#40;"hello"&#41;;
  SOCKET socket1;
  char host&#91;&#93; = "EiMi";
  
  int a=sclient&#40;&socket1,host,8000&#41;;
  cout<<a;
  

  
  return 0;
&#125;


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 09. Nov 2008 10:27 
Offline
Benutzeravatar

Registriert: 11. Feb 2006 19:10
Beiträge: 3569
Wo ist der Aufruf von socket()?

Janka

_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 2 Beiträge ] 

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: Majestic-12 [Bot] und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de