作家
登录

聊聊端口复用的实现和坑点

作者: 来源: 2017-11-08 14:02:17 阅读 我要评论

  •     bufer='' 
  •     while 1: 
  •        recv_data=http://mobile.51cto.com/s.recv(4096)
  •        bufer += recv_data 
  •        if len(recv_data)==0: 
  •           break 
  • 我们把不是我们的数据包中缀发给本地环回地址的 80 端口http办事器。

    以下为C说话实现代码,如下:

    和python的代码一样,起首我们绑定本地监听复竽暌姑的 80 端口,个中监听的IP可能会出现问题,那么我们可以换成 192.168.1.1 , 127.0.0.1 都是可以的,这里不克不及用 select 来处理壅塞,会出问题的,所以我们去掉落,最后创建个线程来进行数据传输交互。

    1.  //初始化操作 
    2.     saddr.sin_family = AF_INET; 
    3.     saddr.sin_addr.s_addr = inet_addr("0.0.0.0"); 
    4.     saddr.sin_port = htons(80); 
    5.     if ((server_sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == SOCKET_ERROR) 
    6.     { 
    7.         printf("[-] error!socket failed!//n"); 
    8.         return (-1); 
    9.     } 
    10.     //复竽暌姑操作 
    11.     if (setsockopt(server_sock, SOL_SOCKET, SO_REUSEADDR, (char *)&val, sizeof(val)) != 0) 
    12.     { 
    13.         printf("[-] error!setsockopt failed!//n"); 
    14.         return -1; 
    15.     } 
    16.     //绑定操作 
    17.     if (bind(server_sock, (SOCKADDR *)&saddr, sizeof(saddr)) == SOCKET_ERROR) 
    18.     { 
    19.         ret = GetLastError(); 
    20.         printf("[-] error!bind failed!//n"); 
    21.         return -1; 
    22.     } 
    23.     //监听操作 
    24.     listen(server_sock, 2); 
    25.  
    26.     while (1) 
    27.     { 
    28.         caddsize = sizeof(scaddr); 
    29.         server_conn = accept(server_sock, (struct sockaddr *)&scaddr, &caddsize); 
    30.         if (server_conn != INVALID_SOCKET) 
    31.         { 
    32.             cthd = CreateThread(NULL, 0, ClientThread, (LPVOID)server_conn, 0, &tid); 
    33.             if (cthd == NULL
    34.             { 

    35.   推荐阅读

        Netcraft 10月Web服务器排名:Nginx首超微软排第二

      Netcraft 宣布了2017年10月 Web 办事器查询拜访申报,本月 Netcraft一共统计了1,815,237,491 个站点和 6,886,362 台收集计算机,排名前三的依然是 Microsoft、Apache 和 nginx 。在 10 月>>>详细阅读


      本文标题:聊聊端口复用的实现和坑点

      地址:http://www.17bianji.com/lsqh/38630.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)