首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

遍历IP,创造TcpClient并与TcpListener尝试连接,为什么后来会连接会很慢

2011-12-22 
遍历IP,创建TcpClient并与TcpListener尝试连接,为什么后来会连接会很慢?我用socket做了一个S/C程序,想让cl

遍历IP,创建TcpClient并与TcpListener尝试连接,为什么后来会连接会很慢?
我用socket做了一个S/C程序,想让client端通过遍历内网所有IP来查找server,然后建立连接,我的想法是这样实现:

For   t   As   Integer   =   0   To   255
Dim   strIP   As   String   =   "10.167.5. "   &   t
try
Dim   tcpClient   as   New   TcpClient(strIP,   nPort)
Console.WriteLine( "Find   Server:   "   &   strIP)
Exit   For
Catch   ex   As   Exception
Console.WriteLine( "Checked   IP:   "   &   strIP)
End   Try
Next

如果strIP不是server所在的IP,new   TcpClient行代码就会抛出异常,算是检查完一个IP。

不知道为什么,在循环中,new   TcpClient那一行代码的执行速度第一次很快,可是后来越来越慢,基本上到第十次执行就要花上10秒钟以上,实在令人发指!
我这方面的知识很少,搞不清真正的原因,希望大家指点迷津,或者换一种方法来达到相同目的,谢谢啊~~~

server处理连接请求的代码是这样的:

m_tcpListener   =   New   TcpListener(IPAddress.Parse(m_strHostIP),   m_nPort)
m_tcpListener.Start()
m_bListening   =   True
While   (m_bListening)
If   m_tcpListener.Pending   Then
                                m_sktClient   =   m_tcpListener.AcceptSocket
'   ...   ...
Else
Thread.Sleep(100)
End   If
End   While

[解决办法]
天啊,效率啊,你可以用基于udp协议的socket发送局域网广播,服务端主动的发送连接信息,再用udpclient接受,这样你不就可以知道主机的参数了吗~~~

热点排行