Linux 网络编程 简单实例
2011-12-16 13:11
417 查看
一、编写Linux下socket协议TCP的ClientServer程序
//客户端,client: #include<stdio.h> #include<unistd.h> #include<stdlib.h> #include<sys/socket.h> #include<sys/stat.h> #include<arpa/inet.h> #define MAXBUF 256 int main() { int ssock; int clen; struct sockaddr_in server_addr; char buf[MAXBUF]; if((ssock=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP))<0){ perror("socket error:"); exit(1); } clen = sizeof(server_addr); memset(&server_addr,0,sizeof(server_addr)); server_addr.sin_family =AF_INET; server_addr.sin_addr.s_addr=inet_addr("127.0.0.1"); server_addr.sin_port =htons(7758); if(connect(ssock,(struct sockaddr *)&server_addr,clen)<0){ perror("connect error:"); exit(1); } memset(buf,0,MAXBUF); if(read(ssock,buf,MAXBUF)<=0) { perror("read error:"); exit(1); } close(ssock); printf("\nread: %s\n",buf); return 0; }
//服务端,server: #include<stdio.h> #include<unistd.h> #include<stdlib.h> #include<string.h> #include<sys/socket.h> #include<sys/stat.h> #include<arpa/inet.h> #define MAXBUF 256 int main() { int clen; int ssock,csock; struct sockaddr_in client_addr,server_addr; char buf[MAXBUF]; if((ssock=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP))<0){ perror("socket error:"); exit(1); } clen = sizeof(client_addr); memset(&server_addr,0,sizeof(server_addr)); server_addr.sin_family =AF_INET; server_addr.sin_addr.s_addr=htonl(INADDR_ANY); server_addr.sin_port=htons(7758); if(bind(ssock,(struct sockaddr *)&server_addr,sizeof(server_addr))<0){ perror("bind error"); exit(1); } if(listen(ssock,8)<0){ perror("listen error:"); exit(1); } while(1){ csock=accept(ssock,(struct sockaddr *)&client_addr,&clen); if(write(csock,buf, MAXBUF)<=0) perror("write error:"); close(csock); } return 0; }二、编写Linux下的socket协议UDP Client/Server程序
//客户端,client: #include<stdio.h> #include<unistd.h> #include<stdlib.h> #include<string.h> #include<sys/socket.h> #include<sys/stat.h> #include<arpa/inet.h> #define MAXBUF 256 int main() { int ssock; int clen; struct sockaddr_in client_addr,server_addr; char buf[MAXBUF]; strcpy(buf,"I miss you already!\n"); if((ssock = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP))<0){ perror("socket error:\n"); exit(1); } memset(&server_addr,0,sizeof(server_addr)); server_addr.sin_family =AF_INET; server_addr.sin_addr.s_addr=inet_addr("127.0.0.1"); server_addr.sin_port=htons(7758); sendto(ssock,(void *)buf,MAXBUF,0,(struct sockaddr*)&server_addr,sizeof(server_addr)); printf("Send message:%s\n",buf); clen=sizeof(client_addr); recvfrom(ssock,(void *)buf,MAXBUF,0,(struct sockaddr*)&server_addr,&clen); printf("Receive message:%s\n",buf); close(ssock); return 0; }
//服务端,server: #include<stdio.h> #include<unistd.h> #include<stdlib.h> #include<string.h> #include<sys/socket.h> #include<sys/stat.h> #include<arpa/inet.h> #define MAXBUF 256 int main() { int ssock; int clen; struct sockaddr_in client_addr,server_addr; char buf[MAXBUF]; if((ssock=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP))<0){ perror("socket error:"); exit(1); } memset(&server_addr,0,sizeof(server_addr)); server_addr.sin_family=AF_INET; server_addr.sin_addr.s_addr=htonl(INADDR_ANY); server_addr.sin_port=htons(7758); if(bind(ssock,(struct sockaddr *)&server_addr,sizeof(server_addr))<0){ perror("bind error:"); exit(1); } clen=sizeof(client_addr); recvfrom(ssock,(void *)buf,MAXBUF,0,(struct sockaddr*)&client_addr,&clen); strcpy(buf,"I miss you"); sendto(ssock,(void *)buf,MAXBUF,0,(struct sockaddr*)&client_addr ,sizeof(client_addr)); close(ssock); return 0; }
相关文章推荐
- linux 网络编程简单实例
- Linux的简单的socket网络编程实例
- linux 网络编程---->简单的UDP实例
- [Linux网络编程]ARP简单实例
- Linux 网络编程 简单实例
- [编程实例]linux下的以太网简单网络流量分析
- 一个简单的linux下网络程序实例-网络编程入门
- linux网络编程之socket(三):最简单的回射客户/服务器程序、time_wait 状态
- 嵌入式Linux网络编程 之 简单的TCP网络编程
- linux网络编程简单C/S模型实现
- Linux C Socket编程原理及简单实例
- 【Linux网络编程实例】实例二:利用TCP协议进行客户端与服务器通信
- Linux网络编程:一个简单的正向代理服务器的实现
- linux网络编程常用函数详解与实例(socket-->bind-->listen-->accept)
- LinuxC/C++编程基础(20) 使用boost::asio搭建服务器简单实例
- 20.Linux:网络编程(TCP协议-简单版本):client和server(原创)
- Linux C Socket编程原理及简单实例
- Linux网络编程--TCP网络编程基础(简单的server/client模型)
- Linux C Socket编程原理及简单实例
- Linux网络编程之进程、线程池及实现简单线程池