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

    评论

报告相同问题?

悬赏问题

  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿