Linux socket-tcp实现简单持续接收服务端
#include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <string.h> #include <netinet/in.h> #include <arpa/inet.h> #include <unistd.h> 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循环
可实现持续信息接收;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!