nur sehr wenige kann es weiter bringen also lass die dummen Kommentare schon erstmal weg.
Server echo:
Code:
#include <sys/socket.h>
#include <sys/stat.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv)
{
int server_sockfd, client_sockfd;
int client_len, n;
char buf[80];
struct sockaddr_in clientaddr, serveraddr;
client_len = sizeof(clientaddr);
if ((server_sockfd = socket (AF_INET, SOCK_STREAM, 0)) < 0)
{
perror("socket error : ");
exit(0);
}
bzero(&serveraddr, sizeof(serveraddr));
serveraddr.sin_family = AF_INET;
serveraddr.sin_addr.s_addr = htonl(INADDR_ANY);
serveraddr.sin_port = htons(atoi(argv[1]));
bind (server_sockfd, (struct sockaddr *)&serveraddr, sizeof(serveraddr));
listen(server_sockfd, 5);
while(1)
{
memset(buf, 0x00, 80);
client_sockfd = accept(server_sockfd, (struct sockaddr *)&clientaddr,
&client_len);
if ((n = read(client_sockfd, buf, 80)) <= 0)
{
close(client_sockfd);
continue;
}
if (write(client_sockfd, buf, 80) <=0)
{
perror("write error : ");
close(client_sockfd);
}
close(client_sockfd);
}
}
Code:
echo_client.c
#include <sys/stat.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv)
{
struct sockaddr_in serveraddr;
int server_sockfd;
int client_len;
char buf[80];
char rbuf[80];
if ((server_sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
{
perror("error :");
exit(0);
}
server_sockfd = socket(AF_INET, SOCK_STREAM, 0);
serveraddr.sin_family = AF_INET;
serveraddr.sin_addr.s_addr = inet_addr("218.234.19.87");
serveraddr.sin_port = htons(atoi(argv[1]));
client_len = sizeof(serveraddr);
if (connect(server_sockfd, (struct sockaddr *)&serveraddr, client_len) < 0)
{
perror("connect error :");
exit(0);
}
memset(buf, 0x00, 80);
read(0, buf, 80);
if (write(server_sockfd, buf, 80) <= 0)
{
perror("write error : ");
exit(0);
}
memset(buf, 0x00, 80);
if (read(server_sockfd, buf, 80) <= 0)
{
perror("read error : ");
exit(0);
}
close(server_sockfd);
printf("read : %s", buf);
}






