Linux 下 TCP C代码
来源:互联网 发布:nz挂机软件 编辑:程序博客网 时间:2024/06/14 14:05
/*socket tcp*/#include <sys/stat.h>#include <fcntl.h>#include <errno.h>#include <netdb.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <stdio.h>#include <string.h>#include <stdlib.h>#include <unistd.h>// define the port #define SERVER_PORT 5555int main(){int serverSocket;struct sockaddr_in server_addr;struct sockaddr_in clientAddr;int addr_len = sizeof(clientAddr);int client;char buffer[200];int iDataNum;int pid;//创建soket //打开一个网络接口,AS_INET 表示使用的是ipv4 //对于tcp 使用sock_stream 对于udp sock_sgramif((serverSocket = socket(AF_INET, SOCK_STREAM, 0)) < 0){perror("socket");return 1;}//soket 初始化bzero(&server_addr, sizeof(server_addr));//协议type 使用ipv4 指定server_addr.sin_family = AF_INET;server_addr.sin_port = htons(SERVER_PORT); //初始化接口//网络地址为inaddr_any 表示本地任意ip地址server_addr.sin_addr.s_addr = htonl(INADDR_ANY); //bindin serverSocket 接口 ip if(bind(serverSocket, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0){perror("connect");return 1;}//表示最多允许5个客户端连接服务器if(listen(serverSocket, 5) < 0) {perror("listen");return 1;}while(1){printf("Listening on port: %d\n", SERVER_PORT);client = accept(serverSocket, (struct sockaddr*)&clientAddr, (socklen_t*)&addr_len);if(client < 0){perror("accept");continue;}pid = fork();if(pid<0){printf("connot create pid ");close(client);exit(1);}//产生一个进程if(pid==0){close(serverSocket);printf("\nrecv client data...n");printf("IP is %s\n", inet_ntoa(clientAddr.sin_addr));printf("Port is %d\n", htons(clientAddr.sin_port));while(1){/* client: 接收端套接字描述符 buff: 用来存放recv函数接收到的数据的缓冲区 也就是客户端发过来的数据 1024: 指明buff的长度 flags: 一般置为0*/iDataNum = recv(client, buffer, 1024, 0);if(iDataNum < 0){perror("recv");continue;}buffer[iDataNum] = '\0';if(strcmp(buffer, "quit") == 0)break;printf("%drecv data is %s\n", iDataNum, buffer);/* client:指定发送端套接字描述符。 buff: 存放要发送数据的缓冲区 iDataNum: 实际要改善的数据的字节数 flags: 一般设置为0*///把接受到的数据有发送给了客户端send(client, buffer, iDataNum, 0);}}else {close(client);}}return 0;}
0 0
- Linux 下 TCP C代码
- Linux下的C语言Socket函数建立TCP连接(代码+注释)
- linux下c语言tcp通信
- Linux下C语言实现TCP通信
- linux下C语言 socket tcp编程
- Linux下C语言TCP编程02
- Linux下C语言TCP编程01
- Linux c 下代码调试
- Linux C做的TCP文件传输的代码
- Linux下TCP客户端和服务器代码编写
- C语言Linux下的Socket 编程(TCP)
- Linux下TCP Socket编程C语言小实例
- Linux下TCP Socket编程C语言小实例
- 【C语言】linux下简单的聊天室程序(TCP+多线程)
- linux下TCP Socket编程C语言小实例
- Linux下TCP Socket编程C语言小实例
- Linux C语言下TCP传结构体
- Linux下TCP协议的C/S架构实现
- Entity Framework 对新数据库使用 Code First
- ExtJs4学习(十二)layout布局
- c语言应用
- can bind a LONG value only for insert into a LONG column
- 网上兼职是真的吗?淘宝兼职是真的吗?
- Linux 下 TCP C代码
- PHP构造验证码
- 【BZOJ1202】【HNOI2005】狡猾的商人 并查集
- ECShop后台站点地图关于 Deprecated: Assigning the return value of new by reference is deprecated的错误的解决办法
- 待查资料网卡
- 网上兼职是真的吗,qt语音怎么刷单?
- MySQL 5.6.14 win32 zip版安装
- 用Cfree,C++调用日期和时间函数并显示
- void my_strcpy