我们把不是我们的数据包中缀发给本地环回地址的 80 端口http办事器。
以下为C说话实现代码,如下:
和python的代码一样,起首我们绑定本地监听复竽暌姑的 80 端口,个中监听的IP可能会出现问题,那么我们可以换成 192.168.1.1 , 127.0.0.1 都是可以的,这里不克不及用 select 来处理壅塞,会出问题的,所以我们去掉落,最后创建个线程来进行数据传输交互。
- //初始化操作
- saddr.sin_family = AF_INET;
- saddr.sin_addr.s_addr = inet_addr("0.0.0.0");
- saddr.sin_port = htons(80);
- if ((server_sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == SOCKET_ERROR)
- {
- printf("[-] error!socket failed!//n");
- return (-1);
- }
- //复竽暌姑操作
- if (setsockopt(server_sock, SOL_SOCKET, SO_REUSEADDR, (char *)&val, sizeof(val)) != 0)
- {
- printf("[-] error!setsockopt failed!//n");
- return -1;
- }
- //绑定操作
- if (bind(server_sock, (SOCKADDR *)&saddr, sizeof(saddr)) == SOCKET_ERROR)
- {
- ret = GetLastError();
- printf("[-] error!bind failed!//n");
- return -1;
- }
- //监听操作
- listen(server_sock, 2);
- while (1)
- {
- caddsize = sizeof(scaddr);
- server_conn = accept(server_sock, (struct sockaddr *)&scaddr, &caddsize);
- if (server_conn != INVALID_SOCKET)
- {
- cthd = CreateThread(NULL, 0, ClientThread, (LPVOID)server_conn, 0, &tid);
- if (cthd == NULL)
- {
推荐阅读
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
1/2 1