Linux socket-tcp实现简单持续接收服务端
#include#include #include #include <string.h> #include in.h> #include #include int main(int argc,char** argv) { while(1) { int sock; /*创建套嵌字*/ printf("1\n"); sock = socket(AF_INET,SOCK_STREAM,0); /*判断套接字创建是否成功*/ if(sock<0) { printf("socket crteat fail"); _exit(0); } /*创建ip、端口结构体*/ printf("2\n"); struct sockaddr_in sever_addr; /*清空结构体*/ memset(&sever_addr,0,sizeof(sever_addr)); sever_addr.sin_family=AF_INET; sever_addr.sin_addr.s_addr=htonl(INADDR_ANY); sever_addr.sin_port = htons(1234); /*绑定IP端口套嵌字*/ printf("3\n"); if(bind(sock, (struct sockaddr *)&sever_addr, sizeof(sever_addr))<0) { printf("绑定失败"); _exit(0); } /*监听端口*/ printf("4\n"); if(listen(sock, 20)==-1) { printf("listen 失败"); _exit(0); } /*创建客户端文件域*/ struct sockaddr_in client_addr; /*接收连接请求*/ printf("5\n"); socklen_t len_client = sizeof(client_addr); int sock_client = accept(sock, (struct sockaddr *)&client_addr, &len_client); if(sock_client<0) { printf("accept 失败"); _exit(0); } /*文件IO操作*/ char read_buff[20]; char write_buff[20]; printf("6\n"); while(1) { read(sock_client, read_buff, 20); /*printf("7\n");*/ printf("%s",read_buff); /*gets(write_buff); write_buff[19]="/0"; send(sock_client, read_buff, 20,0);*/ memset(read_buff,0,sizeof(read_buff)); /*memset(write_buff,0,20);*/ } close(sock); close(sock_client); printf("8\n"); } }
使用./server运行;accept函数处阻塞;
输入ip端口
点击连接
进入while循环
可实现持续信息接收;