关于监听listen的问题

绿豆蛙2013 2008-07-18 11:34:55
问什么我的程序第一次监听可以,在客户端不断开的情况下,我再监听另一个为什么就不可以了呢?报错:操作完成。进行中没有分块操作。这是为什么啊?!!

Private Sub Command1_Click()
If Check1.Value = 0 And Check2.Value = 0 And Check3.Value = 0 And Check4.Value = 0 And Check5.Value = 0 And Check6.Value = 0 And Check7.Value = 0 And Check8.Value = 0 Then
view.Text = view.Text & "请选择监听通道" & Chr(13) & Chr(10)
ElseIf view.Text = view.Text Or view.Text = view.Text & "正在监听,请稍候......" & Chr(13) & Chr(10) Then
view.Text = view.Text & "正在监听,请稍候......" & Chr(13) & Chr(10)
Winsockserver.LocalPort = 1001
Winsockserver.Listen
End If
End Sub
第二次监听,就在红字地方报错。请哪位高手指点一下。谢谢了
...全文
148 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fvflove 2008-07-18
  • 打赏
  • 举报
回复
我给你一个思路.(做服务器的)
1.建立一个Winsock(0) 一般下标是0
2.设置监听端口,进入监听状态.
3.当监听到的时候.在
Winsock1_ConnectionRequest事件中返回.
并加载一个新的Winsock.并与客户端重新建立连接.
4.断开Winsock(0).再次进入监听状态.
5. 重复....
fvflove 2008-07-18
  • 打赏
  • 举报
回复
同一个Winsock 在没有断开的情况下是不能再次监听的.
绿豆蛙2013 2008-07-18
  • 打赏
  • 举报
回复
请楼上帮忙看看,哪里还有问题
Private Sub Command1_Click()
If Check1.Value = 0 And Check2.Value = 0 And Check3.Value = 0 And Check4.Value = 0 And Check5.Value = 0 And Check6.Value = 0 And Check7.Value = 0 And Check8.Value = 0 Then
view.Text = view.Text & "请选择监听通道" & Chr(13) & Chr(10)
ElseIf (Check1.Value = 1 Or Check2.Value = 1 Or Check3.Value = 1 Or Check4.Value = 1 Or Check5.Value = 1 Or Check6.Value = 1 Or Check7.Value = 1 Or Check8.Value = 1) And view.Text = view.Text Then
view.Text = view.Text & "正在监听,请稍候......" & Chr(13) & Chr(10)
Winsockserver0.Close
Winsockserver1.LocalPort = 1002
Winsockserver1.Listen
Else: view.Text = view.Text & "正在监听,请稍候...123..." & Chr(13) & Chr(10)
End If
End Sub





-----

Private Sub Winsockserver0_ConnectionRequest(ByVal requestID As Long)

If Winsockserver0.State <> sckClosed Then Winsockserver0.Close
Winsockserver0.Accept requestID
view.Text = view.Text & "已监听到客户机" & Chr(13) & Chr(10)
Winsockserver1.LocalPort = 1002
Winsockserver1.Listen
End Sub
Private Sub Winsockserver1_ConnectionRequest(ByVal requestID As Long)

If Winsockserver1.State <> sckClosed Then Winsockserver1.Close
Winsockserver1.Accept requestID
view.Text = view.Text & "已监听到客户机" & Chr(13) & Chr(10)
Winsockserver0.LocalPort = 1001
Winsockserver0.Listen
End Sub
绿豆蛙2013 2008-07-18
  • 打赏
  • 举报
回复
感觉可行,我先试试看,谢谢

1,502

社区成员

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

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