请教两个完成端口的问题,自己实在不能解决,高分求高手相助,问题解决立即散分
请教两个问题
1,如何能够快速检测一个局域网内的另一个IP是否与本地IP相连
有什么快速检测的方法吗?
2,使用完成端口,对一客户端开辟了一个线程来管理和它相关的socket,然后让它在完成端口上等待
当在这个socket上有recv或send操作时,就会从GetQueuedCompletionStatus()返回一定的结果,
现在我的目的是建立了一个线程来管理一个客户端,想使用客户端发送一个包含目的地址的字符串比如(192.0.0.1"数据。。。。"),然后通过这个线程的字符串处理函数,将其再转发给192.0.0.1,当192.0.0.1不是本机时,使用socket的api函数Connect()与192.0.0.1连接,然后在发送数据,
这样是可行的,但是在这个程序和192.0.0.1connect的时候,当不能连接192.0.0.1时,connect会阻塞一端时间,而在这一端时间中,这个客户端又发送了其他的消息,这样GetQueuedCompletionStatus()并不能立即返回,甚至,在connect的时间中,客户端会多次发送信息,就会产生较大的延迟,和数据丢失,
请问这样的情况该怎么解决
谢谢
问题点数:100、回复次数:5Top
1 楼Cadillac(努力学好C++发奋学好English)回复于 2005-06-04 12:43:26 得分 0
没有人会吗??
给个思路吧
Top
2 楼combusMartin()回复于 2005-06-04 13:51:07 得分 50
1. 通常用的ping程序就可以完成
2. 客户端发送的数据用一个动态的列表存放,对其进行有效的管理就可以了;
和另一个ip在建立连接后开始发送数据。Top
3 楼Cadillac(努力学好C++发奋学好English)回复于 2005-06-04 14:10:57 得分 0
现在我的问题是客户端的操作是不能控制的
也就是说我要解决这个问题只能修改服务器端的程序
这该怎么办
Top
4 楼Cadillac(努力学好C++发奋学好English)回复于 2005-06-05 14:31:58 得分 0
没有人会答吗?
高手帮忙啊
Top
5 楼ZHENG017()回复于 2005-06-06 09:09:39 得分 50
1.调用sendarp,或ping.或telnet 那个机器的135端口,etc
2.和192.168.0.1保持长连接,不要在客户发数据再connect.Top




