当前位置: 首页 > news >正文

丰收路网站建设十大经典案例

丰收路网站建设,十大经典案例,咸阳万企网站建设,wordpress速度很慢欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起探讨和分享Linux C/C/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。 端口复用专栏#xff1a;《Linux从小白到大神》《网络编程》 在前面讲解TCP状态转换中提到过一个2MSL… 欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起探讨和分享Linux C/C/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。 端口复用 专栏《Linux从小白到大神》《网络编程》 在前面讲解TCP状态转换中提到过一个2MSL等待时间如果在通信过程中server主动断开连接那么server进程会处于TIME_WAIT状态并等待2MSL的时间此时server进程还没终止端口号port还被该进程占用呢所以当server主动断开连接时如果立即再次启动server就会提示端口已经被使用等待2MSL后才可以再次启动server。请看下图 端口复用常见的用途包括 防止服务器重启时之前绑定的端口还未释放程序突然退出系统但是没有释放端口。 设置端口复用需要用到的API如下 int opt 1; setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, (const void *)opt, sizeof(opt)); sockfd监听的文件描述符 SOL_SOCKET级别 SO_REUSEADDR也可以用SO_REUSEPORT opt赋值为1表示属性被启用 sizeof(opt) 相关参数设置及含义可在下图中查看 在设置端口复用时需要注意的是必须在绑定端口之前就设置端口复用属性。实际上setsockopt()函数有很多功能设置端口复用只是它的功能之一。 下面是一个设置端口复用的示例 #include stdio.h #include ctype.h #include unistd.h #include stdlib.h #include sys/types.h #include sys/stat.h #include string.h #include arpa/inet.h #include sys/socket.h// server int main(int argc, const char* argv[]) {// 创建监听的套接字int lfd socket(AF_INET, SOCK_STREAM, 0);if(lfd -1){perror(socket error);exit(1);}// 绑定struct sockaddr_in serv_addr;memset(serv_addr, 0, sizeof(serv_addr));serv_addr.sin_family AF_INET;serv_addr.sin_port htons(9999);serv_addr.sin_addr.s_addr htonl(INADDR_ANY); // 本地多有的// 127.0.0.1// inet_pton(AF_INET, 127.0.0.1, serv_addr.sin_addr.s_addr);// 设置端口复用 // 需要在bind函数之前设置int opt 1;setsockopt(lfd, SOL_SOCKET, SO_REUSEADDR, (void*)opt, sizeof(opt));// 绑定端口int ret bind(lfd, (struct sockaddr*)serv_addr, sizeof(serv_addr));if(ret -1){perror(bind error);exit(1);}// 监听ret listen(lfd, 64);if(ret -1){perror(listen error);exit(1);}// 阻塞等待连接请求 并接受连接请求struct sockaddr_in clien_addr;socklen_t clien_len sizeof(clien_addr);int cfd accept(lfd, (struct sockaddr*)clien_addr, clien_len);if(cfd -1){perror(accetp error);exit(1);}char ipbuf[128];printf(client iP: %s, port: %d\n, inet_ntop(AF_INET, clien_addr.sin_addr.s_addr, ipbuf, sizeof(ipbuf)),ntohs(clien_addr.sin_port));char buf[1024] {0};while(1){// read data// int len read(cfd, buf, sizeof(buf));int len recv(cfd, buf, sizeof(buf), 0);if(len -1){perror(recv error);exit(1);}else if(len 0){printf(客户端已经断开连接。。。\n);break;}printf(read buf %s\n, buf);// 小写转大写for(int i0; ilen; i){buf[i] toupper(buf[i]);}printf(after buf %s\n, buf);// 大写串发给客户端// write(cfd, buf, strlen(buf)1);ret send(cfd, buf, strlen(buf)1, 0);if(ret -1){perror(send error);exit(1);}}close(cfd);close(lfd);return 0; }
http://www.hkea.cn/news/14407379/

相关文章:

  • 素材网站哪个最好嘉兴做网站赚钱么
  • 建站多少钱一个百度竞价推广开户联系方式
  • 分类信息网站平台的推广群晖Wordpress80端口
  • 企业网站管理系统介绍免费关键词排名优化
  • 什么静态网站容易做一个完整的电商网站开发周期
  • 销售网站开发意义做食物的网站
  • 国内建筑网站开发板有什么用
  • 外贸展示型网站建设怎样做网络推广软件系统
  • 做视频网站视频短片网站服务器选择
  • 廉江网站建设深圳公司注册地址异常怎么办
  • 邦邻营销型网站建设动漫设计作品
  • 淘宝数据网站开发效果好的网站建设
  • 网站建设的目标客户青岛wordpress建站
  • 自己做装修图网站wordpress 页面模板不显示
  • 免费 网站 平台58同城北京网站建设
  • 网站建设 猫云seo浏览器官网入口
  • 宁波市建设工程检测协会网站2144网页游戏大厅
  • 怎么给网站做缓存网页设计基础的课程介绍
  • 设计师常上的网站网站地图文件
  • py网站开发网络营销推广的成功案例
  • 珠海多语种网站制作网站跳转微信链接
  • 鹿岛建设 网站公司网站后台是什么
  • 又拍云wordpress全站cdn网页设计与网站开发项目
  • 国外优秀的平面设计网站惠州百度搜索排名优化
  • 怎么推广外贸网站永康网站建设专业公司
  • 聊城招聘网站建设企业平台有哪些
  • 平台型网站建设公司网站权重不够高 导致
  • 长沙网站建设推广怎么做填表网站
  • wordpress产品列表佛山做网站优化公司
  • 电子商务网站如何推广网站开发公司需要什么资质