社区
网络编程
帖子详情
sever用一个socket能监视本机的多个指定端口吗?
woodyk
2007-06-08 05:45:18
sever用一个socket能监视本机的多个指定端口吗?(如6001,6005,6007,6050......)
如果能,是如何监视的?
如果不能,该如何实现监视本机的多个指定端口的功能呢?
请各位给个主意,谢谢!!
...全文
805
28
打赏
收藏
sever用一个socket能监视本机的多个指定端口吗?
sever用一个socket能监视本机的多个指定端口吗?(如6001,6005,6007,6050......) 如果能,是如何监视的? 如果不能,该如何实现监视本机的多个指定端口的功能呢? 请各位给个主意,谢谢!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
28 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
woodyk
2007-06-21
打赏
举报
回复
先结贴了,我消化一下,有问题再重新开贴请教各位大侠。
谢谢!!
吴双1983
2007-06-19
打赏
举报
回复
应该用多线程来监听哟。这样的话多端口也很容易处理。
lwykj
2007-06-19
打赏
举报
回复
raw socket 可以吧
woodyk
2007-06-19
打赏
举报
回复
我用多线程做了一个程序,但是感觉监听的端口多到一定程度就有点让人......
所以想寻求一个更好的方法:)
僵哥
2007-06-18
打赏
举报
回复
其实在这里面IOCP大致可以看做是一个处理同样功能的线程池就行。另外那么多端口建议建立端口池进行管理,然后定期扫描状态,对废弃的端口进行资源释放。另外如此宽端口范围,就光发起AcceptEx也需要相当的内存。所以还要考虑使用内存池进行管理。
僵哥
2007-06-18
打赏
举报
回复
真的不大想再用API去写这东西(不过我也不会MFC),最近只是用Delphi做了一个简单ECHO。感觉还行,实现楼主所说的这个功能没有任何问题,首先,把IOCP做到一个类当中,其实就只是创建一个IOCP句柄,另外就是一个Socket Server类,如果多个端口的处理相同,则直接在Socket Server当中创建多个Socket并且绑定监听,然后往每个Socket发送至少一个AcceptEx,把所有这些Socket与同一个IOCP Handle相关联,然后所于该IOCP队列当中的线程都可以针对在这些端口当中任何一个最近到来的请求做出响应,只是在Accept之后,记得仍然在该Socket当中发起一个新的AcceptEx省得漏过。如此就跟一个端口没有两样了。
woodyk
2007-06-18
打赏
举报
回复
楼上大哥,小弟绝对地合法公民,请指点一二.最好用适当代码说明,谢谢!
iceheart
2007-06-18
打赏
举报
回复
very easy! 不过你是干嘛用的?不是正当用途就不帮
WizardK
2007-06-18
打赏
举报
回复
可以做到,只要不是阻塞LISTEN就可以(CancelBlockingCall),一个端口一个端口的监听,监听到了就创建线程去收发数据。
但是这样监听的话,在端口很多的情况下没什么实用价值。
zdleek
2007-06-18
打赏
举报
回复
如果楼主真要监听100个端口,可以考虑分组端口,多个程序监听
woodyk
2007-06-18
打赏
举报
回复
我用socket监听到具体消息后(如发送接收消息),转到相应的处理函数,但我要同时监听很多端口,达到哪个端口有消息来就先处理哪个的目的.
chenliankun
2007-06-17
打赏
举报
回复
理解一点,所谓socket只是一段内存,它把从网卡接收的数据交给不同的应用程序处理而已。端口用来区别这些应用程序。一个socket只能绑定一个端口,就是为了区别不同的应用程序或线程。
你的目的究竟是“监听”还是“拦截”?
如果程序是为了处理网卡数据,监听1000个端口真的要考虑程序是不是有问题。
如果程序是为了记录网卡数据,并不处理,使用raw socket就可以了。
如果程序是为了过滤网卡数据,就需要在数据交给TCP前进行处理,需要开发驱动程序来实现。
僵哥
2007-06-15
打赏
举报
回复
如果要1000个SOCKET,就要怀疑你程序是不是有问题了!
================================
使用1k个Socket并不等于就低效,所以也不能那么绝对地说就有问题。为了扩大拦截的范围,开1000个不为过。
smartwind
2007-06-15
打赏
举报
回复
一个socket只能监听一个端口
woodyk
2007-06-15
打赏
举报
回复
大侠们,不要"空口无凭"啊!!!!!!!!
要不给个select的例子先!
说IOCP好,给个例子证明!!!
谢谢!!
chenliankun
2007-06-14
打赏
举报
回复
如果要1000个SOCKET,就要怀疑你程序是不是有问题了!
僵哥
2007-06-14
打赏
举报
回复
比较建议的是采用IOCP来管理,而不是select.
woodyk
2007-06-14
打赏
举报
回复
谁能告诉我怎么用select管理若干个socket先>?
谢谢!
pSK_LB
2007-06-12
打赏
举报
回复
就不能用一个socket去一个一个地查询端口吗?
僵哥
2007-06-12
打赏
举报
回复
监听一千个端口有点可怕,不过一个SOCKET只能监听一个端口,按理解,应该这一千个端口处理的是同样的一个东西,所以基于上可以考虑使用绑定到同一个IOCP队列当中,这样子的话就只是有限的少量线程在服务和处理,可以在一定的程序上提升效率。但是一千个端口,仅仅就象撒鱼网一样,扩大了范围,但是你的带宽以及服务器的其它资源限定了,你的服务能力。
加载更多回复(8)
vc++ 应用源码包_1
这个是IOCP远程控制软件的模型,服务端运行后会自动发送
本机
信息到客户端,客户端采用IOCP重叠机制。 IOCP封装类(DLL)发布 主要是CIocpSrv"伪类",实际上还是调用的DLL, IOCP完成
端口
IP所在地查询器 jpeglib_demo...
vc++ 应用源码包_6
这个是IOCP远程控制软件的模型,服务端运行后会自动发送
本机
信息到客户端,客户端采用IOCP重叠机制。 IOCP封装类(DLL)发布 主要是CIocpSrv"伪类",实际上还是调用的DLL, IOCP完成
端口
IP所在地查询器 jpeglib_demo...
安装和配置 Windows Server 2022 存储和文件服务
通过这
一个
课程的介绍,我们就能够去了解到 1、Windows Server 2022 的系统当中,软件定义存储的功能,为我们提供了存储池和存储直通的功能,确保任何的
一个
磁盘或是服务器出现故障的时候,都能够确保应用程序或是...
vc++ 应用源码包_5
这个是IOCP远程控制软件的模型,服务端运行后会自动发送
本机
信息到客户端,客户端采用IOCP重叠机制。 IOCP封装类(DLL)发布 主要是CIocpSrv"伪类",实际上还是调用的DLL, IOCP完成
端口
IP所在地查询器 jpeglib_demo...
vc++ 应用源码包_3
这个是IOCP远程控制软件的模型,服务端运行后会自动发送
本机
信息到客户端,客户端采用IOCP重叠机制。 IOCP封装类(DLL)发布 主要是CIocpSrv"伪类",实际上还是调用的DLL, IOCP完成
端口
IP所在地查询器 jpeglib_demo...
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章