关于Winsock控件编程问题

stayor 2010-08-09 03:05:52
使用VB6.0编译MSDN提供的例子,放在同一台电脑上可以使用,放在2台电脑上就连接不上了。另外网上下载的例子也是这种情况,期待高手出招。
是不是网络设置或是路由器设置有问题。2台电脑之间用飞鸽传书没有问题。
...全文
182 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
huyifengabc 2010-08-11
  • 打赏
  • 举报
回复
你的控件都没注册别人怎么用.......winsock 控件需要注册才能在别的机子上运行.去下个控件在别人用的时候带上一起放在压缩包里.. Shell "regsvr32 /s """ & Path & "\""MSWINSCK.ocx""" '这是注册winsock控件的代码...必须带上文件.
stayor 2010-08-11
  • 打赏
  • 举报
回复
期待的高手没有出现,很遗憾!
stayor 2010-08-11
  • 打赏
  • 举报
回复
算啦用udp吧。
stayor 2010-08-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 bakw 的回复:]
可能是你电脑防火墙
[/Quote]
各种杀毒、安全等软件全关了,也不好用。是不是哪些服务关闭了,或是路由器的设置问题。
笨狗先飞 2010-08-09
  • 打赏
  • 举报
回复
可能是你电脑防火墙
stayor 2010-08-09
  • 打赏
  • 举报
回复
用UDP连接可以很顺利收发数据。就是使用tcp协议连接时连接不上,服务器端根本收不到连接请求。
chinaboyzyq 2010-08-09
  • 打赏
  • 举报
回复
[Quote=引用楼主 stayor 的回复:]
使用VB6.0编译MSDN提供的例子,放在同一台电脑上可以使用,放在2台电脑上就连接不上了。另外网上下载的例子也是这种情况,期待高手出招。
是不是网络设置或是路由器设置有问题。2台电脑之间用飞鸽传书没有问题。
[/Quote]
不要用计算机名,用IP试试。
另外两台计算机ping一下看看,能否相互ping通。
stayor 2010-08-09
  • 打赏
  • 举报
回复
客户端:
Option Explicit

Private Sub Form_Load()
'Winsock 控件的名字为 tcpClient。
'注意:要指定远程主机,可以使用
' IP 地址(例如:"121.111.1.1"),也可以使用
'计算机的“好听的名字”如下所示。
tcpClient.RemoteHost = "192.168.0.101"
tcpClient.RemotePort = 1001
End Sub

Private Sub cmdConnect_Click()
'调用 Connect 方法,初始化连接。
tcpClient.Connect
End Sub

Private Sub txtSend_Change()
tcpClient.SendData txtSend.Text
End Sub

Private Sub tcpClient_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
tcpClient.GetData strData
txtOutput.Text = strData
End Sub





服务器:
Option Explicit

Private Sub Form_Load()
'将 LocalPort 属性设置为一个整数。
'然后调用 Listen 方法。
tcpServer.Bind 1001, "192.168.0.101"
tcpServer.Listen
'frmClient.Show '显示客户端的窗体。
End Sub

Private Sub tcpServer_ConnectionRequest(ByVal requestID As Long)
'检查控件的 State 属性是否为关闭的。
'如果不是,
'在接受新的连接之前先关闭此连接。
If tcpServer.State <> sckClosed Then _
tcpServer.Close
'接受具有 requestID 参数的
'连接。
tcpServer.Accept requestID
End Sub

Private Sub txtSendData_Change()
'名为 txtSendData 的 TextBox 控件中
'包含了要发送的数据。当用户往文本框中
'键入数据时,使用 SendData 方法
'发送输入的字符串。
tcpServer.SendData txtSendData.Text
End Sub

Private Sub tcpServer_DataArrival(ByVal bytesTotal As Long)
'为进入的数据声明一个变量。
'调用 GetData 方法,并将数据赋予名为 txtOutput
'的 TextBox 的 Text 属性。
Dim strData As String
tcpServer.GetData strData
txtOutput.Text = strData
End Sub



孤独剑_LPZ 2010-08-09
  • 打赏
  • 举报
回复
例子很多,没代码不明真相

1,502

社区成员

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

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