Chinaunix首页 | 论坛 | 博客
  • 博客访问: 338093
  • 博文数量: 95
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 157
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-26 20:03
文章分类

全部博文(95)

文章存档

2017年(15)

2015年(17)

2014年(63)

分类: 嵌入式

2014-03-30 20:45:04

    

Linux 网络编程 简单实例 

一、编写Linux下socket协议TCP的ClientServer程序
  1. //客户端,client:  
  2.   
  3. #include  
  4. #include  
  5. #include  
  6. #include  
  7. #include  
  8. #include  
  9. #define MAXBUF 256  
  10. int main()  
  11. {  
  12.     int ssock;  
  13.     int clen;  
  14.     struct sockaddr_in server_addr;  
  15.     char buf[MAXBUF];  
  16.     if((ssock=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP))<0){  
  17.         perror("socket error:");  
  18.         exit(1);  
  19.     }  
  20.     clen = sizeof(server_addr);  
  21.     memset(&server_addr,0,sizeof(server_addr));  
  22.     server_addr.sin_family     =AF_INET;  
  23.     server_addr.sin_addr.s_addr=inet_addr("127.0.0.1");  
  24.     server_addr.sin_port       =htons(7758);  
  25.     if(connect(ssock,(struct sockaddr *)&server_addr,clen)<0){  
  26.         perror("connect error:");  
  27.         exit(1);  
  28.     }  
  29.     memset(buf,0,MAXBUF);  
  30.     if(read(ssock,buf,MAXBUF)<=0)  
  31.     {  
  32.         perror("read error:");  
  33.         exit(1);  
  34.     }  
  35.     close(ssock);  
  36.     printf("\nread: %s\n",buf);  
  37.     return 0;  
  38. }  
  1. //服务端,server:  
  2.   
  3. #include<stdio.h>  
  4. #include<unistd.h>  
  5. #include<stdlib.h>  
  6. #include<string.h>  
  7. #include<sys/socket.h>  
  8. #include<sys/stat.h>  
  9. #include<arpa/inet.h>  
  10. #define MAXBUF 256  
  11. int main()  
  12. {  
  13.     int clen;  
  14.     int ssock,csock;  
  15.     struct sockaddr_in client_addr,server_addr;  
  16.     char buf[MAXBUF];  
  17.     if((ssock=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP))<0){  
  18.         perror("socket error:");  
  19.         exit(1);  
  20.     }  
  21.     clen = sizeof(client_addr);  
  22.     memset(&server_addr,0,sizeof(server_addr));  
  23.     server_addr.sin_family     =AF_INET;  
  24.     server_addr.sin_addr.s_addr=htonl(INADDR_ANY);<p>    server_addr.sin_port=htons(7758);  
  25.     if(bind(ssock,(struct sockaddr *)&server_addr,sizeof(server_addr))<0){  
  26.         perror("bind error");  
  27.         exit(1);  
  28.     }  
  29.     if(listen(ssock,8)<0){  
  30.         perror("listen error:");  
  31.         exit(1);  
  32.     }  
  33.     while(1){  
  34.         csock=accept(ssock,(struct sockaddr *)&client_addr,&clen);  
  35.         if(write(csock,buf, MAXBUF)<=0)  
  36.             perror("write error:");  
  37.         close(csock);  
  38.     }  
  39.     return 0;  
  40. }  
  41. p>  
二、编写Linux下的socket协议UDP Client/Server程序
  1. //客户端,client:  
  2.   
  3. #include<stdio.h>  
  4. #include<unistd.h>  
  5. #include<stdlib.h>  
  6. #include<string.h>  
  7. #include<sys/socket.h>  
  8. #include<sys/stat.h>  
  9. #include<arpa/inet.h>  
  10. #define MAXBUF 256  
  11. int main()  
  12. {  
  13.     int ssock;  
  14.     int clen;  
  15.     struct sockaddr_in client_addr,server_addr;  
  16.     char buf[MAXBUF];  
  17.     strcpy(buf,"I miss you already!\n");  
  18.     if((ssock = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP))<0){  
  19.         perror("socket error:\n");  
  20.         exit(1);  
  21.     }  
  22.     memset(&server_addr,0,sizeof(server_addr));  
  23.     server_addr.sin_family  =AF_INET;  
  24.     server_addr.sin_addr.s_addr=inet_addr("127.0.0.1");  
  25.     server_addr.sin_port=htons(7758);  
  26.     sendto(ssock,(void *)buf,MAXBUF,0,(struct sockaddr*)&server_addr,sizeof(server_addr));  
  27.     printf("Send message:%s\n",buf);  
  28.     clen=sizeof(client_addr);  
  29.     recvfrom(ssock,(void *)buf,MAXBUF,0,(struct sockaddr*)&server_addr,&clen);  
  30.     printf("Receive message:%s\n",buf);  
  31.     close(ssock);  
  32.     return 0;  
  33. }  
  1. //服务端,server:  
  2.   
  3. #include<stdio.h>  
  4. #include<unistd.h>  
  5. #include<stdlib.h>  
  6. #include<string.h>  
  7. #include<sys/socket.h>  
  8. #include<sys/stat.h>  
  9. #include<arpa/inet.h>  
  10. #define MAXBUF 256  
  11. int main()  
  12. {  
  13.     int ssock;  
  14.     int clen;  
  15.     struct sockaddr_in client_addr,server_addr;  
  16.     char buf[MAXBUF];  
  17.     if((ssock=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP))<0){  
  18.         perror("socket error:");  
  19.         exit(1);  
  20.     }  
  21.     memset(&server_addr,0,sizeof(server_addr));  
  22.     server_addr.sin_family=AF_INET;  
  23.     server_addr.sin_addr.s_addr=htonl(INADDR_ANY);  
  24.     server_addr.sin_port=htons(7758);  
  25.     if(bind(ssock,(struct sockaddr *)&server_addr,sizeof(server_addr))<0){  
  26.         perror("bind error:");  
  27.         exit(1);  
  28.     }  
  29.     clen=sizeof(client_addr);  
  30.     recvfrom(ssock,(void *)buf,MAXBUF,0,(struct sockaddr*)&client_addr,&clen);  
  31.     strcpy(buf,"I miss you");  
  32.     sendto(ssock,(void *)buf,MAXBUF,0,(struct sockaddr*)&client_addr ,sizeof(client_addr));  
  33.     close(ssock);  
  34.     return 0;  
  35. }  
阅读(1646) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~