ecz00 2015-07-24 20:52 采纳率: 0%
浏览 2297

winsock两个问题,关闭后怎么重新监听?在close事件中不能重新listen?

Private Sub Command1_Click()
sock.Close
End Sub

Private Sub Command2_Click() 'tcp测试
sock.Connect "192.168.200.10", 39963
Debug.Print sock.State
End Sub

'--------------------------------------以上是客户端

'-------------------以下服务器端

Private Sub Command1_Click()
wsk.Close
Debug.Print "sock关闭后:" & wsk.State
wsk.LocalPort = 39963
wsk.Listen
Debug.Print "当前sock:" & wsk.State
End Sub

Private Sub Form_Load()
wsk.LocalPort = 39963
wsk.Listen
edeal:
If Err.Number = 10048 Then
If wsk.State = 1 Then wsk.Close
wsk.LocalPort = 64399
wsk.Listen
End If
Debug.Print "newLocalIP:" & wsk.LocalIP & " " & wsk.LocalPort
End Sub

Private Sub Form_Unload(Cancel As Integer)
End
End Sub

Private Sub Timer1_Timer()
On Error GoTo Errs
wsk.SendData "xtbjc"

Errs:

If Err.Number <> 0 Then
Timer1.Interval = 0
wsk.Close
End If
End Sub

Private Sub wsk_Close()
Debug.Print "产生关闭事件了"
Timer1.Enabled = False
Text1.Text = "客户端断开了!"

'wsk.Listen '在这里不能启动监听?????**********************
End Sub

Private Sub wsk_ConnectionRequest(ByVal requestID As Long)
Debug.Print "产生连接事件了"
If wsk.State <> 0 Then wsk.Close
wsk.Accept requestID
Timer1.Interval = 2000
Text1.Text = "连接成功"
End Sub

  • 写回答

1条回答 默认 最新

  • ecz00 2015-07-24 23:27
    关注

    问题已经解决

    wsk.listen前面少了一个wsk.close

    正常情况下是可以关闭重新listen再连接的,因为客户端设了localport,导致出问题,没有错误提示,总的说就是TCP连接时,客户端不能设任何loacalport

    评论

报告相同问题?

悬赏问题

  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图