不完美才是最完美作文:关于vb的winsock通信问题

来源:百度文库 编辑:高考问答 时间:2024/04/27 18:09:02
我用vb的winsock控件编了个聊天程序~
用的是TCP协议~
代码:
服务器:
Private Sub Form_Load()
Text1.Visible = False
Text2.Visible = False
Winsock1.LocalPort = 4949
Winsock1.Listen
End Sub

Private Sub Text1_Change()
Winsock1.SendData Text1.Text
End Sub

Private Sub Winsock1_Close()
Winsock1.Close
End Sub

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
Text1.Visible = True
Text2.Visible = True
If Winsock1.State <> sckClosed Then Winsock1.Close
Winsock1.Accept requestID
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim js As String
Winsock1.GetData js, vbString
Text2.Text = js
End Sub
客户端:
Private Sub Command1_Click()
Winsock1.Connect
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_Load()
Text2.Visible = False
Text3.Visible = False
Winsock1.RemotePort = 4949
Winsock1.RemoteHost = "long"
Winsock1.RemoteHost = "192.168.1.100"
End Sub

Private Sub Form_Unload(Cancel As Integer)

Winsock1.Close
End Sub

Private Sub Text1_Change()
Winsock1.RemoteHost = Text1.Text
End Sub
Private Sub Text2_Change()
Winsock1.SendData Text3.Text
End Sub
Private Sub Winsock1_Close()
Winsock1.Close
End Sub
Private Sub Winsock1_Connect()
Text2.Visible = True
Text3.Visible = True
Text2.Text = "我下了,88"
Command1.Enabled = False
End Sub

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
If Winsock = sckOpen Then Label1.Caption = 打开
If Winsock = sckListening Then Label1.Caption = 帧听
If Winsock = sckConnecting Then Label1.Caption = 正在连接
If Winsock = sckConnected Then Label1.Caption = 已连接

End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim js As String
Winsock1.GetData js, vbString
Text2.Text = js
End Sub

我在自己家里的电脑上测试是可以连的上~~用的是路由器,但是发给别人就连不上了,谁能帮帮我~~谢谢
怎么换成公网的IP了还是不行啊?这下连自己机子都连不上了

Winsock1.RemoteHost = "192.168.1.100"
你这个明显是局域网的IP,你们应该有公网IP才行啊
不然是没办法互联的

一楼说的对呀!
应该用公网的才行呀!不然没用的!

显然 楼上两位说得很对
你的RemoteHost没有联到对方的机子上
不是VB的问题 也不是WinSock的问题
建议你在连接之前先ping以下对方的电脑以确认连接

--->--->--->--->--->--->--->--->--->--->--->--->
如果还有问题
请加我的QQ
395273243
或者联系我的邮箱
395273243#QQ.com (将#改为@)
或者联系百度上的Bear_Ben用户 Bear_Ben's QQ:453628001
天才动力 创造奇迹
答讫 ( 欢迎Ben来告诉我回答的错误之处 )
--->--->--->--->--->--->--->--->--->--->--->--->