---------- Forwarded message ----------
From: Frank Gerlach <frankgerlach@gmail.com>
Date: Mar 7, 2007 1:53 PM
Subject: Re: C und Netzwerkprog
To: kai-micael.preiss@tu-dresden.de



On 3/7/07, Kai-Micael Preiß <preiss@ifl.tu-dresden.de> wrote:
Du meinst dieses, nehme ich an:
http://www.amazon.de/Unix-Network-Programming-Addison-Wesley-Professional/dp
/0131411551/ref=sr_1_1/303-7926172-9919438?ie=UTF8&s=books-intl-de&qid=11732
65945&sr=8-1 ?

Exakt.
 
Hier die URL zu den Beispielprogrammen:

http://www.kohala.com/start/unpv12e/unpv12e.tar.gz


Das erste Programm aus diesem Buch , leicht modifiziert:

#include <sys/types.h>
#include <sys/socket.h>
#include <unistd.h>

#include <pthread.h>
#include <sys/types.h>

#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include < unistd.h>


#define MAXLINE 80


int
main(int argc, char **argv)
{
int sockfd, n;

char recvline[MAXLINE + 1];
struct sockaddr_in servaddr;

if (argc != 2)
printf("usage: a.out <IPaddress>\n");

if ( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
printf("socket error\n");


bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(25);//25 ist SMTP
if (inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0)
printf("inet_pton error for %s", argv[1]);

if (connect(sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr)) < 0)

printf("connect error\n");

while ( (n = read(sockfd, recvline, MAXLINE)) > 0) {
recvline[n] = 0; /* null terminate */
printf("%s",recvline);

}
if (n < 0)
printf("read error\n");

exit(0);
}

Aufruf mit
./xx 212.89.98.3

Es gibt dann die Begruessungsmeldung eines Servers aus.