Ubuntu下用C语言实现客户端服务器交互
2017-01-10 17:44
369 查看
Socket-Server.c
服务端代码#include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <errno.h> #include <string.h> #include <sys/types.h> int main(void) { int listenfd = 0,connfd = 0; struct sockaddr_in serv_addr; char sendBuff[1025]; int numrv; listenfd = socket(AF_INET, SOCK_STREAM, 0); printf("socket retrieve success\n"); memset(&serv_addr, '0', sizeof(serv_addr)); memset(sendBuff, '0', sizeof(sendBuff)); serv_addr.sin_family = AF_INET; serv_addr.sin_addr.s_addr = htonl(INADDR_ANY); serv_addr.sin_port = htons(5000); bind(listenfd, (struct sockaddr*)&serv_addr,sizeof(serv_addr)); if(listen(listenfd, 10) == -1){ printf("Failed to listen\n"); return -1; } while(1) { connfd = accept(listenfd, (struct sockaddr*)NULL ,NULL); // accept awaiting request strcpy(sendBuff, "Message from server"); write(connfd, sendBuff, strlen(sendBuff)); close(connfd); sleep(1); } return 0; }
第二步:编译
gcc Server.c -o Socket-Server.out
第三步:执行等待客户端链接
./Socket-Server.out
Socket Client.c
客户端代码#include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <netdb.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #include <errno.h> #include <arpa/inet.h> int main(void) { int sockfd = 0,n = 0; char recvBuff[1024]; struct sockaddr_in serv_addr; memset(recvBuff, '0' ,sizeof(recvBuff)); if((sockfd = socket(AF_INET, SOCK_STREAM, 0))< 0) { printf("\n Error : Could not create socket \n"); return 1; } serv_addr.sin_family = AF_INET; serv_addr.sin_port = htons(5000); serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1"); if(connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr))<0) { printf("\n Error : Connect Failed \n"); return 1; } while((n = read(sockfd, recvBuff, sizeof(recvBuff)-1)) > 0) { recvBuff = 0; if(fputs(recvBuff, stdout) == EOF) { printf("\n Error : Fputs error"); } printf("\n"); } if( n < 0) { printf("\n Read Error \n"); } return 0; }
第二步:编译
gcc Client.c -o Socket-Client
第三步:执行链接服务器
./Socket-Client
看到下面说明成功了
参考文献:
参考文献
相关文章推荐
- Ubuntu下C语言实现以子进程号命名的文件及文件夹的新建、删除等操作。
- Ubuntu下用C语言连接MySql——实现增删改查排序
- Ubuntu下c语言实现并发服务器简单socket编程实例
- Ubuntu下用C语言连接MySql——实现增删改查排序
- C语言中的可变参数函数的浅析(以Arm 程序中的printf()函数实现为例) . 分类: HI3531 arm-linux-Ubuntu 2013-12-16 14:19 438人阅读 评论(0) 收藏
- Ubuntu下C语言实现贪吃蛇游戏
- Ubuntu下配置 Sftp实现windows 与 linux 文件交互
- Ubuntu下C语言+libnet实现ARP数据包广播
- Ubuntu 12.04下C语言连接Mysql数据库实现增删改查
- OO in C(2): C语言的多态实现
- 用C语言来实现hex文件到coe文件的转化[原创]
- 用C语言实现八数码问题
- 链表的C语言实现(五)
- 用C语言实现按钮新技术
- 一个C语言实现不含递归的高效快速排序算法
- 链表的c语言实现(六)
- C语言实现MATLAB 6.5中M文件的方法
- 链表的c语言实现(二)
- 链表的c语言实现(四)
- 在ASP.NET系统中实现与EXCEL的交互