vb 聊天室编写问题

weilai_li 2012-12-30 09:45:09
Option ExplicitPrivate Sub Command1_Click() '点击发送按钮If Winsock1.State = 7 ThenWinsock1.SendData Text3.Text '发送数据到对方End If
List1.AddItem "我说的话:" & Text3.TextText3.Text = "" '清空发送文本框Text3.SetFocus
End Sub
Private Sub Form_Load()Winsock1.LocalPort = 1600 '设置服务端口号Text1.Textwinsock1.LocalIP '读取服务器ip地址Text2.Text = 1600Winsock1.Listen '设置监听Text3.SetFocus

End Sub
Private Sub Form_Unload(Cancel As Integer)Winsock1.CloseEnd Sub
Private Sub Winsock1_Close() '客户端断开连接后If Winsock1.State <> 0 ThenWinsock1.Close'Unload Winsock1List2.Clear '在线列表处理End IfEnd Sub
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)Dim ip As String
If Winsock1.State <> 0 ThenWinsock1.CloseEnd IfWinsock1.Accept requestID '接受远程主机的请求ip = Winsock1.RemoteHostIPList2.AddItem ip

End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)Dim str As StringWinsock1.GetData strList1.AddItem "对方说的话:" & str
End Sub



这是我编的程序,聊天室的服务端
我的问题是客户端连接成功后,点击断开连接后,再次登录服务器不成功。
我的客户端现在只有一个,故只用了一个winsock1.
求大家帮我看看是啥问题
是winsock没释放吗?
...全文
238 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
worldy 2013-01-01
  • 打赏
  • 举报
回复
一般要等一会儿,要马上能使用,上次使用的端口没有释放,你就要换一个端口
weilai_li 2013-01-01
  • 打赏
  • 举报
回复
是不是加这个啊 Private Sub Winsock1_Close() '客户端断开连接后 If Winsock1.State <> 0 Then Winsock1.Close 'Unload Winsock1 List2.Clear '在线列表处理 End If End Sub 这个我程序里有这段啊
worldy 2012-12-31
  • 打赏
  • 举报
回复
不是已经告诉你了?还问? Private Sub TxSocks_Close(Index As Integer) TxSocks(Index).Close End Sub
weilai_li 2012-12-31
  • 打赏
  • 举报
回复
引用 6 楼 worldy 的回复:
服务器端的winsock,在接收到close事件时,应该调用cloase方法关闭,如果需要,则在再调用listen方法监听
那具体怎么解决了?
worldy 2012-12-31
  • 打赏
  • 举报
回复
服务器端的winsock,在接收到close事件时,应该调用cloase方法关闭,如果需要,则在再调用listen方法监听
橘子皮... 2012-12-31
  • 打赏
  • 举报
回复
weilai_li 2012-12-30
  • 打赏
  • 举报
回复
引用 3 楼 worldy 的回复:
引用 2 楼 weilai_li 的回复:引用 1 楼 worldy 的回复: 端口没有马上释放造成 winsock似乎在close后,端口没有立即释放,会延时一点时间,所以端口不能马上再被使用 那怎么解决呢? 等会再连接,或者换一个口连接
等了两分钟连接还是不行,如果把服务端关了再运行就可以。
worldy 2012-12-30
  • 打赏
  • 举报
回复
引用 2 楼 weilai_li 的回复:
引用 1 楼 worldy 的回复: 端口没有马上释放造成 winsock似乎在close后,端口没有立即释放,会延时一点时间,所以端口不能马上再被使用 那怎么解决呢?
等会再连接,或者换一个口连接
weilai_li 2012-12-30
  • 打赏
  • 举报
回复
引用 1 楼 worldy 的回复:
端口没有马上释放造成 winsock似乎在close后,端口没有立即释放,会延时一点时间,所以端口不能马上再被使用
那怎么解决呢?
worldy 2012-12-30
  • 打赏
  • 举报
回复
端口没有马上释放造成 winsock似乎在close后,端口没有立即释放,会延时一点时间,所以端口不能马上再被使用

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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