SAI ||
Sommersemester 1997 ||
Systemnahe Software II ||
Übungen
<- Alle Module
Lösung zu Blatt 7 (Aufgabe 8): callsock.h + callsock.c
Socketverbindung zu einem bestehenden Port herstellen.
/*
* oeffnet eine Socketverbindung zu einem bestehenden Port an einem
* Unix-Server
*/
int call_socket(char *hostname, int portnum);
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
/*
* oeffnet eine Socketverbindung zu einem bestehenden Port an einem
* Unix-Server
*/
int call_socket(char *hostname, int portnum)
{
struct sockaddr_in sa;
struct hostent *hp;
int a, s;
/* mache IP-Adresse aus dem Namen */
if (!(hp = gethostbyname(hostname)))
return -1;
memset(&sa, 0, sizeof(sa)); /* Struktur initialisieren */
/* kopiere IP_Adresse fuer Aufruf */
memcpy(&sa.sin_addr, hp->h_addr, hp->h_length);
sa.sin_family = AF_INET; /* Adresstyp Internet */
sa.sin_port = htons(portnum); /* Netzwerkdarstellung der Portno. */
/* Socket als Stream oeffen */
if ((s = socket(AF_INET, SOCK_STREAM, 0)) <0)
return -1;
/* An Host & Port anbinden */
if (connect(s, (struct sockaddr*)&sa, sizeof(sa)) <0)
{ close(s);
return -1;
}
return s;
}
<- Alle Module
SAI ||
Sommersemester 1997 ||
Systemnahe Software II ||
Übungen
Matthias Grabert, Juli 1997