VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 785|回复: 3

[求助] IOCP如何绑定所有端口

[复制链接]
50_avatar_middle
在线会员 发表于 2015-11-29 07:53:01 | 显示全部楼层 |阅读模式
3驿站币
//创建一个监听套接字
        m_ListenSocket = WSASocket(AF_INET , SOCK_STREAM , IPPROTO_TCP, NULL, 0, WSA_FLAG_OVERLAPPED);
        if ( m_ListenSocket == INVALID_SOCKET )
        {
                goto __Error_End;
        }

        sockaddr_in service;
        service.sin_family = AF_INET;
        service.sin_addr.s_addr = INADDR_ANY;
        service.sin_port =htons(INADDR_ANY) ;//htons(uListenPort);

        if ( bind(m_ListenSocket, (sockaddr*)&service, sizeof(sockaddr_in)) == SOCKET_ERROR )
        {
                goto __Error_End;
        }

我本来是绑定9999端口:service.sin_port =htons(9999);此写法正确
但是我现在的需求,可能要绑定多个端口,或更多的端口:service.sin_port =htons(INADDR_ANY) ;此写法虽没错,但无法响应客户端


求指点,如何绑定所有端口或多个端口的方法





上一篇:Vc编程创建两个线程,实现两个线程之间的SOCKET通信
下一篇:for()有范围吗
78_avatar_middle
online_supermod 发表于 2015-11-29 10:11:11 | 显示全部楼层
根本没有绑定所有端口一说,INADDR_ANY是0.0.0.0,表示任意地址,如果一台机器有多个IP,可以用INADDR_ANY绑定所有地址。
74_avatar_middle
在线会员 发表于 2015-11-29 14:00:14 | 显示全部楼层
socket 只能和1個端口 通信
如果 要實現 多端口 可以 使用 端口映射
比如 你 監聽 1102 端口 同時 將 本地 1103端口的 請求 轉發到 1102 這樣 客戶端 可以和1102/1103 端口 進行通信
linux 下 可以使用 iptables 如下命令
sudo iptables -t nat -A PREROUTING -p tcp --dport 1103 -j REDIRECT --to-port 1102
將端口 1103 的tcp請求 轉發到 1102 windows下不知道怎麼玩 你自己google下 應該有類似的 工具
51_avatar_middle
online_admins 发表于 2015-11-30 09:34:37 | 显示全部楼层
楼上两位正解了
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-5-27 22:20

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表