【c语言】打开一个socket服务端listen 描述符
来源:互联网 发布:搜狗排名优化 编辑:程序博客网 时间:2024/05/29 10:23
int open_listenfdd(char *port){ struct addrinfo hints,*listp,*p; int listenfd, optval = 1; /* get a list of potential server address*/ memset(&hints,0,sizeof(struct addrinfo)); hints.ai_socktype = SOCK_STREAM; /* open a connection */ hints.ai_flags = AI_PASSIVE | AI_ADDRCONFIG; /* use a numeric prot arg */ hints.ai_flags |= AI_NUMERICSERV; /* recommended for connections */ getaddrinfo(NULL,port,&hints,&listp); /* walk the list for one that we can bind to.*/ for(p = listp ; p; p = p->ai_next){ /* create a socket descriptor */ if((listenfd = socket(p->ai_family,p->ai_socktype,p->ai_protocol)) < 0){ continue; } /* eliminates "address already in use" error from bind*/ setsockopt(listenfd,SOL_SOCKET,SO_REUSEADDR, (const void *)&optval,sizeof(int)); /* bind the descriptor to the address */ if(bind(listenfd,p->ai_addr,p->ai_addrlen) == 0 ){ break; /* connect success */ } close(listenfd); /* bind failed , try next*/ } /* clean up */ freeaddrinfo(listp); if(!p) /* no address worked */ return -1; /* make it a listening socket ready to accept connection request*/ if(listen(listenfd,LISTENQ) < 0){ close(listenfd); return -2; } return listenfd;}
阅读全文
1 0
- 【c语言】打开一个socket服务端listen 描述符
- 【c语言】打开一个客户端socket描述符
- 网络 服务端 建立服务监听描述符 socket setsockopt(reuse) bind listen
- 【c语言】实现打开一个连接描述符,并操作描述符
- socket-listen
- socket-listen
- socket-listen
- SOCKET LISTEN
- C语言socket服务端和客户端代码 /缓冲区/阻塞
- c语言实现socket服务端/客户端通过tcp传送文件
- c语言socket双向通信+一服务端对多客户端通信
- 绑定socket描述符到一个网络设备
- C语言listen()函数:等待连接
- 建立一个服务端的SOCKET
- c语言打开文件方式 socket 端口号
- C语言socket()函数:建立一个socket通信
- 用弦截法求函数的一个根(c语言描述)
- 【C语言】操作符描述,示例,优先级
- java开发操作系统内核:实现进程的优先级切换
- MySQL5.7更改密码时出现ERROR 1054 (42S22): Unknown column 'password' in 'field list'
- IEEE802.15.4 PHY 和MAC层解读
- 控制台输入 Scanner类的应用
- Ubuntu初体验
- 【c语言】打开一个socket服务端listen 描述符
- 自由泳的呼吸技术:解析不间断呼气为什么这样重要
- vmware centos虚拟上面搭lamp环境,做端口映射
- 第一章 并发编程的挑战 总结
- ROS机器人Diego 1#整合Tensorflow object_detection,图像识别
- 报错解决/简单媒体查询/动态加载css/横竖屏判断/html浏览器兼容性meta设置等小问题小知识
- 初学JAVA,报道帖
- Vim技能修炼教程(13)
- 在Linux下安装nodejs遇到Cannot find module 'npmlog'问题的解决方法