1.server端的代码
#define MAXSIZE 100
int main(void)
{
int sd;
struct sockaddr_in laddr, raddr;
char buf[MAXSIZE];
int connsd;
time_t times;
int size;
sd = socket(AF_INET, SOCK_STREAM, 0);
if(sd < 0)
{
perror("socket");
exit(1);
}
laddr.sin_family = AF_INET;
laddr.sin_port = htons(1999);
inet_pton(AF_INET, "0.0.0.0", &laddr.sin_addr);
if(bind(sd, (void *)&laddr, sizeof(laddr)) < 0)
{
perror("bind");
exit(1);
}
if(listen(sd, 10) < 0)
{
perror("listen");
exit(1);
}
size = sizeof(raddr);
while(1)
{
connsd = accept(sd, (void *)&raddr, &size);
times = time(NULL);
sprintf(buf, "%.24s\r\n", ctime(×));
write(connsd, buf, strlen(buf));
close(connsd);
}
exit(0);
}
客户端
#define MAXSIZE 100
int main(int argc, char *argv[])
{
int sd;
struct sockaddr_in raddr;
char buf[MAXSIZE];
int len;
if(argc < 2)
{
fprintf(stderr, "Usage ....\n");
exit(1);
}
sd = socket(AF_INET, SOCK_STREAM, 0);
if(sd < 0)
{
perror("socket");
exit(1);
}
raddr.sin_family = AF_INET;
raddr.sin_port = htons(1999);
inet_pton(AF_INET, argv[1], &raddr.sin_addr);
if(connect(sd, (void *)&raddr, sizeof(raddr)) < 0)
{
perror("connect");
exit(1);
}
while( (len = read(sd, buf, MAXSIZE)) > 0)
{
buf[len] = '\0';
if(EOF == fputs(buf, stdout))
{
perror("fputs");
exit(1);
}
}
close(sd);
exit(0);
}