linux c socket client与server实例代码
来源:互联网 发布:美国的华莱士 知乎 编辑:程序博客网 时间:2024/05/22 18:42
这是最典型的client server通信代码,网上实例很多,但大部分无法编译通过(囧)
服务器端代码:
#include <stdlib.h> #include <unistd.h> #include <sys/types.h> #include <stdio.h> #include <sys/socket.h> #include <netinet/in.h> #include <string.h> #include <arpa/inet.h> int main(){ int server_fp=socket(AF_INET, SOCK_STREAM, 0); sockaddr_in s_add; bzero(&s_add,sizeof(struct sockaddr_in)); //服务器端的监听端口2013 s_add.sin_family=AF_INET; s_add.sin_port=htons(2013); bind(server_fp,(struct sockaddr *)(&s_add), sizeof(struct sockaddr)); listen(server_fp,15); printf("begin\n"); int sin_size=sizeof(struct sockaddr_in); sockaddr_in c_add; //接收客户端请求,得到了fd就得到了一切! int fd=accept(server_fp, (struct sockaddr *)(&c_add), (socklen_t*)&sin_size); printf("end %s\n",inet_ntoa(c_add.sin_addr)); char receive[100]; int len=read(fd,receive,100); printf("%d %s\n",len,receive); close(fd); close(server_fp); return 0; }
客户端代码:
#include <stdlib.h> #include <unistd.h> #include <sys/types.h> #include <stdio.h> #include <sys/socket.h> #include <netinet/in.h> #include <string.h> #include <arpa/inet.h> int main(){ int fd=socket(AF_INET, SOCK_STREAM, 0); sockaddr_in s_add; bzero(&s_add,sizeof(struct sockaddr_in)); //设置服务器端地址 s_add.sin_family=AF_INET; s_add.sin_addr.s_addr= inet_addr("127.0.0.1"); s_add.sin_port=htons(2013); //连接服务器,得到fd后 网络部分结束了,剩下的是收发数据 int ret=connect(fd,(struct sockaddr *)(&s_add), sizeof(struct sockaddr)); printf("%d\n",ret); char str[]="hello world"; write(fd,str,sizeof(str)); close(fd); return 0;}
运行命令
g++ -o server server.cpp
g++ -o client client.cpp
编译成功后,
执行
./server
程序会停在accept
此时
./client
server端输出:
begin
end 127.0.0.1
12 hello world
后续希望在客户端与服务器之间传递protobuf数据,还没调试好,而且服务器需要增加线程池等,还没调好,请期待!
0 0
- linux c socket client与server实例代码
- socket:server-client实例
- linux c socket学习 server&client --->code
- socket server.c & client.c
- 经典 C语言 socket SERVER,CLIENT 端代码实现
- C Socket Programming server client
- linux socket server and client
- linux c socket 开发与编译实例
- linux c socket 开发与编译实例
- Simple TCP Server Client Socket C
- linux c socket server
- C Socket Programming for Linux with a Server and Client Example Code
- Simple TCP Socket Client and Server Communication in C Under Linux
- 【C/S通信交互之Socket篇】Cocos2dx(Client)使用BSD Socket与Mina(Server)手机网游通信框架!
- 【C/S通信交互之Socket篇】Cocos2dx(Client)使用BSD Socket与Mina(Server)手机网游通信框架
- 【C/S通信交互之Socket篇】Cocos2dx(Client)使用BSD Socket与Mina(Server)手机网游通信框架!
- 【C/S通信交互之Socket篇】Cocos2dx(Client)使用BSD Socket与Mina(Server)手机网游通信框架!
- 【C/S通信交互之Socket篇】Cocos2dx(Client)使用BSD Socket与Mina(Server)手机网游通信框架!
- 关于 Eclipse 在线更新ADT
- 集成运放
- 用 const 限定类的成员函数
- MOTO G代码开源
- Android布局之LinearLayout
- linux c socket client与server实例代码
- 基于visual Studio2013解决面试题之1207堆排序
- 运放、带宽相关知识
- 类的声明
- 类的实现
- c++面试宝藏。。。。。
- 磁珠和电感的区别与联系
- JavaScript基础与DOM、BOM
- 从饭店谈起,看支付宝Zqueue系统如何应对双11