各位大哥:程序甲: (甲电脑IP = 192.168.0.209 )remotehost = 192.168.0.234 remoteport =1200 Option ExplicitPrivate Sub Command1_Click() Dim STR As String STR = "XIEXIENI"
sckconnect.SendData STR
End SubPrivate Sub Command2_Click()
sckconnect.Connect sckconnect.RemoteHost, sckconnect.RemotePort
End Sub程序乙: (乙电脑的IP =192.168.0.234 )LocalPort = 1200 Option ExplicitPrivate Sub Form_Load()
sckserver(0).Bind sckserver(0).LocalPort '与本地端口绑定
sckserver(0).Listen
End SubPrivate Sub sckserver_ConnectionRequest(Index As Integer, ByVal requestID As Long)
If sckserver.Count = 1 Then
Load sckserver(1)
sckserver(1).Accept requestID
End If
End SubPrivate Sub sckserver_DataArrival(Index As Integer, ByVal bytesTotal As Long) Dim sdata As String
sckserver(1).GetData sdata, vbStringEnd Sub
我所处的网络环境是局域网中,我所用的两台电脑是通过公司的代理服务器 上的网.
(乙电脑的IP =192.168.0.234 ) 程序甲: (甲电脑IP = 192.168.0.209 ) 请问是我的程序有问题 还是在这中代理服务下 不能够进行通信调试呢? 谢谢!!!
sckconnect.SendData STR
End SubPrivate Sub Command2_Click()
sckconnect.Connect sckconnect.RemoteHost, sckconnect.RemotePort
End Sub程序乙: (乙电脑的IP =192.168.0.234 )LocalPort = 1200 Option ExplicitPrivate Sub Form_Load()
sckserver(0).Bind sckserver(0).LocalPort '与本地端口绑定
sckserver(0).Listen
End SubPrivate Sub sckserver_ConnectionRequest(Index As Integer, ByVal requestID As Long)
If sckserver.Count = 1 Then
Load sckserver(1)
sckserver(1).Accept requestID
End If
End SubPrivate Sub sckserver_DataArrival(Index As Integer, ByVal bytesTotal As Long) Dim sdata As String
sckserver(1).GetData sdata, vbStringEnd Sub
我所处的网络环境是局域网中,我所用的两台电脑是通过公司的代理服务器 上的网.
(乙电脑的IP =192.168.0.234 ) 程序甲: (甲电脑IP = 192.168.0.209 ) 请问是我的程序有问题 还是在这中代理服务下 不能够进行通信调试呢? 谢谢!!!
解决方案 »
- 开心一笑
- 突破VB的text字符限制???
- (VBA)高分求助powerpoint幻灯片的播放顺序.
- 急!!关于遍历并更改EXCEL里的SHEET里的内容
- 编译的程序怎么不能在别的机器上运行,提示类没有注册???
- 排序问题,vb写的不对啊!!!
- 怎样操作窗体样式中WS_SYSMENU里得选项,比如要去掉SYSMENU里得关闭选项!
- (ado)command中paramters的type属性中有二个addbdate和addate有何区别,好像都是表示日期类型,还有我要上传时间日期类型数据应该用哪个类
- 关于用ADOX建数据库的一个问题
- 本人有几个VB问题要问,高手请教!
- mshflesgrid中如何设定单元格内显示两位小数,四舍五入?
- 连接数据库错误
sckserver(0).Bind sckserver(0).LocalPort '与本地端口绑定
sckserver(0).Listen
其中 sckserver(0).Bind 多余,去掉,udp协议才用bind
如果一台电脑有N个IP地址,使用tcp就必须bind
Private Sub Form_Load()
sckserver(0).LocalPort=1200 '与本地端口绑定
sckserver(0).Listen
End Sub
Private Sub sckserver_ConnectionRequest(Index As Integer, ByVal requestID As Long)
'这个事件本身就是发送连接请求时候触发,不需要判断
Load sckserver(1)
sckserver(1).Accept requestIDEnd Sub
sckserver(1).GetData sdata, vbString----sckserver(index).getdata sdataEnd Sub
甲用tcp listen侦听
乙发连接请求
甲响应并判断是否是对应的客户端发出的请求
正确则发送正确指令到客户端,客户端显示连接成功
否则直接断线这样就连接成功了
客户端传数据给服务端时直接SendData
服务端用GetData收
服务端也直接用SendData
客户端也是用GetData收
OK在测试时先用单一的连接
成功后再测试数组连接如果单一连接不成功说明网络中有阻碍
先解决网络问题再试
甲机器程序:(甲机器IP =192.168.0.209)Private Sub Form_Load()
With sckconnect
.RemoteHost = "192.168.0.202" '要连接到的计算机名
.RemotePort = 1200 '要连接到的端口号
.LocalPort = 1201 '该Winsock控制将要使用的本地端口号,便于其它端与该Winsock通讯
.Bind 1201 '将该Winsock控制绑定到该本地端口
End With
End SubPrivate Sub sckconnect_DataArrival(ByVal bytesTotal As Long) Dim strData As String
sckconnect.GetData strData, vbString
txtOutput.Text = strData
End SubPrivate Sub txtSend_Change()
sckconnect.SendData txtSend.Text '发送文本
End Sub
乙机器程序:(乙机器IP =192.168.0.202)
Private Sub Form_Load()
With sckserver
.RemoteHost = "192.168.0.209" '要连接到计算机的IP地址
.RemotePort = 1201 '要连接到的端口号
.LocalPort = 1200'该Winsock控制将使用的本地端口号,便于其它方与之通讯
.Bind 1200'将该Winsock控制绑定到该本地端口
End WithEnd SubPrivate Sub sckserver_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
sckserver.GetData strData, vbString
txtOutput.Text = strData
End SubPrivate Sub txtSend_Change()
sckserver.SendData txtSend.Text '发送文本
End Sub先运行乙程序,再运行甲程序...在甲程序中txtSend 输入字符后 弹出错误消息:
实时错误:40006
所需事物或请求错误协议或连接状态.
帮我分析一下原因..... 解决后马上散分....!! 多谢!!
,你看下你的winsock 控件属性是不是选择的udp,默认是tcp