Linux下的TCP Socket简单例子

来源:互联网 发布:大明王朝1566台词知乎 编辑:程序博客网 时间:2024/05/16 07:54

http://blog.sina.com.cn/s/blog_858820890101599h.html


客户端代码 client.c

#include <stdio.h>#include <string.h>#include <sys/socket.h>#include <netinet/in.h>int main(int argc, char **argv){    int sockfd;    struct sockaddr_in servaddr;    sockfd = socket(PF_INET, SOCK_STREAM, 0);    bzero(&servaddr, sizeof(servaddr));    servaddr.sin_family = AF_INET;    servaddr.sin_port = htons(50001);    servaddr.sin_addr.s_addr = inet_addr("127.0.0.1");    connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr));    char sendline[100];    sprintf(sendline, "Hello, world!");    write(sockfd, sendline, strlen(sendline));    close(sockfd);    return 1;}

服务器端代码 server.c

#include <stdio.h>#include <string.h>#include <sys/socket.h>#include <netinet/in.h>int main(int argc, char **argv){    int listenfd;    int connfd;    struct sockaddr_in servaddr;    listenfd = socket(PF_INET, SOCK_STREAM, 0);    bzero(&servaddr, sizeof(servaddr));    servaddr.sin_family = AF_INET;    servaddr.sin_addr.s_addr = htonl(INADDR_ANY);    servaddr.sin_port = htons(50001);    bind(listenfd, (struct sockaddr *)&servaddr, sizeof(servaddr));    listen(listenfd, 10);    connfd = accept(listenfd, (struct sockaddr *)NULL, NULL);    int n;    char recvline[1024];    while((n=read(connfd, recvline, 1024)) > 0)    {        recvline[n] = 0;        printf("%s\n", recvline);    }    close(connfd);    close(listenfd);    return 1;}


0 0
原创粉丝点击