TcpClient关闭后为什么就不能重新连接了?

chen6191 2004-09-26 03:07:07
Private mobjClient As TcpClient
mobjClient = New TcpClient()
mobjClient.Connect(192.168.1.99, 4660)
这时mobjClient已经连接上了

当我mobjClient.close
mobjClient.Connect(192.168.1.99, 4660)
编译就会提示出错,请问大家怎么才可以重新连接?
...全文
1544 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
chen6191 2004-10-16
  • 打赏
  • 举报
回复
没人回答啊,先结了。
chen6191 2004-10-03
  • 打赏
  • 举报
回复
這下我該怎麼辦啊?
還有一個奇怪的問題,當我斷掉網絡,再重新連上之後,似乎這個tcpclient的networkstream的DataAvailable
屬性就一直是false,不管另一端有沒有資料可以讀取。
請問大家該怎麼解決?
chen6191 2004-10-01
  • 打赏
  • 举报
回复
TO:qzj(SoldierQ)
怪了,我寫在一般的事件裡面可以,可是寫在線程裡面就不行了,
提示“System.Net.Sockets.SocketException: 連線嘗試失敗,因為連線對象有一段時間並未正確回應,或是連線建立失敗,因為連線的主機無法回應。”
liulangxin 2004-10-01
  • 打赏
  • 举报
回复
这个研究过,当使用单线程的连接的时候,你断掉一个连接后,再次相连,其实在服务器端这个连接的状态处于clsoe_wait(不确定,但是肯定处于一种销毁连接的状态) 的状态,据说过一段时间后会自动释放,但是没有办法控制,似乎没有办法
而且当时还有一个很奇怪的情况,我客户端释放这个port时,会使服务器处于该状态,但是没有释放相关对象时,服务器能释放,这是在异步时候的情况了
HGSWK 2004-10-01
  • 打赏
  • 举报
回复
我在用vb6.0时也遇到过这样的问题,当时我查到的资料是这样的,如果有个client和server,当连上后,如果client断开,而server端没有,再连就出问题,而server断了,client再连就没问题了

总结:关键在server端,client断后,server端也要断,然后再次连接就应该没问题了
TonyTonyQ 2004-09-29
  • 打赏
  • 举报
回复
TO: chen6191() ,這個方法沒有問題啊,我用的就是這種啊。你用我的方法有什麽問題?報告什麽錯誤?
SeeSunSet 2004-09-27
  • 打赏
  • 举报
回复
用多线程啊....NET自带的例子多完美啊..
TonyTonyQ 2004-09-27
  • 打赏
  • 举报
回复
Private mobjClient As TcpClient
mobjClient = New TcpClient()
mobjClient.Connect(192.168.1.99, 4660)
mobjClient.close

调用Close方法后,TcpClient对象就会从内存中销毁(Dispose),不能再用
要再使用的话,再实例化一个就行了,比如:

Private mobjClient As TcpClient
mobjClient = New TcpClient()
mobjClient.Connect(192.168.1.99, 4660)
...
mobjClient.close

'再次使用
mobjClient = New TcpClient()
mobjClient.Connect(192.168.100.100, 80)
...
mobjClient.close

chen6191 2004-09-27
  • 打赏
  • 举报
回复
qzj(SoldierQ),我照你的方法還是不行 啊,請大家幫助!
tx79 2004-09-26
  • 打赏
  • 举报
回复
gz

16,721

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧