求救 郁闷。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
我正在学WINSOCK控件 碰到了一些问题想问一下你怎么同时多程连接?
就是怎样才可以打开多个客户端进行点对点聊天在局域网里
我简单的做个客户端和服务端 当打开第二个客户端连接后发消息的时候就出现了错误 麻烦你帮我修改一下代码好吗 谢谢!
服务端:
Private Sub Form_Load()
Winsockserver.LocalPort = 1002
Winsockserver.Listen
End Sub
Private Sub send_Click()
Winsockserver.SendData textsend.Text
End Sub
Private Sub Winsockserver_ConnectionRequest(ByVal requestID As Long)
If Winsockserver.State <> sckClosed Then Winsockserver.Close
Winsockserver.Accept requestID
End Sub
Private Sub Winsockserver_DataArrival(ByVal bytesTotal As Long)
Dim tmpstr As String
Winsockserver.GetData tmpstr
textget.Text = tmpstr
End Sub
客户端:
Private Sub Command1_Click()--------------------编程问答-------------------- 服务器端使用winsock控件数组应该可以 --------------------编程问答-------------------- 恩 但是具体怎么弄的呀 麻烦修改一下代码 谢谢啦 --------------------编程问答-------------------- 服务端每收到一个连接时
Winsockclient.SendData Textsend.Text
End Sub
Private Sub Command2_Click()
Winsockclient.Connect
MsgBox "连接成功 可以发信息了"
End Sub
Private Sub Form_Load()
Winsockclient.RemotePort = 1002
Winsockclient.RemoteHost = Winsockclient.LocalIP
End Sub
Private Sub winsockclient_DataArrival(ByVal bytesTotal As Long)
Dim tmpstr As String
Winsockclient.GetData tmpstr
Textget.Text = tmpstr
End Sub
Load sckClient(NewIndex) --------------------编程问答-------------------- 具体怎么做的啊 麻烦把代码给我改改啦 郁闷死了 --------------------编程问答-------------------- 你这是看别人的例子吧,我有VB.NET的例子,可以给你看一下 --------------------编程问答-------------------- 好也 发上来看看 --------------------编程问答-------------------- VB...失望啊...干什么都不爽快 --------------------编程问答--------------------
哪你干什么又爽又快? --------------------编程问答-------------------- 服务端:
Private Gac() As Boolean
Dim Socknumber As Integer
Private Sub Command1_Click(Index As Integer)
Select Case Index
Case 0
Winsock1(0).Close
Unload Me
Case 1
Command1(1).Enabled = False
Command1(2).Enabled = True
Winsock1(0).LocalPort = 2600
Winsock1(0).Listen
Socknumber = 0
Frame1.Caption = "服务已经启动"
Case 2
Command1(1).Enabled = True
Command1(2).Enabled = False
Winsock1(0).Close
Text(0).Text = 0
Frame1.Caption = "服务已经停止"
End Select
End Sub
Private Sub Form_Load()
Command1(1).Enabled = True
Command1(2).Enabled = False
End Sub
Private Sub Form_Unload(Cancel As Integer)
Winsock1(0).Close
End Sub
Private Sub Winsock1_Close(Index As Integer)
Winsock1(Index).Close
Unload Winsock1(Index)
Gac(Index) = False
Text(0).Text = Int(Text(0).Text) - 1
End Sub
Private Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long)
Socknumber = Socknumber + 1
Load Winsock1(Socknumber)
Winsock1(Socknumber).Accept requestID
ReDim Preserve Gac(Socknumber)
Gac(Socknumber) = True
Text(0).Text = Int(Text(0).Text) + 1
End Sub
Private Sub Winsock1_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim c As String
Winsock1(Index).GetData c, vbString
Dim i As Integer
For i = 1 To UBound(Gac)
If Not i = Index Then
If Gac(i) Then
Winsock1(i).SendData c
DoEvents
End If
End If
Next i
End Sub
客户端:
Option Explicit
Private Sub Command1_Click()
Winsock1.RemoteHost = TextServerIP
Winsock1.RemotePort = TextServerPost.Text
Winsock1.Connect
Command1.Enabled = False
Do
DoEvents
Loop Until Winsock1.State = sckConnected Or Winsock1.State = sckError
If Winsock1.State = sckError Then
Command1.Enabled = True
Winsock1.Close
Text3.Text = "已与服务器连接失败" + Chr$(13) + Chr$(10) + Text3.Text
Else
Text3.Text = "已与服务器连接成功" + Chr$(13) + Chr$(10) + Text3.Text
Command2.Enabled = True
Command3.Enabled = True
End If
End Sub
Private Sub Command2_Click()
Winsock1.SendData Text1.Text
Text2.Text = "我说的话: " + Text1.Text + Chr$(13) + Chr$(10) + Text2.Text
Text1.Text = ""
End Sub
Private Sub Command3_Click()
Winsock1.Close
Command1.Enabled = True
Command2.Enabled = False
Command3.Enabled = False
Text3.Text = "已与服务器断开" + Chr$(13) + Chr$(10) + Text3.Text
End Sub
Private Sub Form_Load()
Command1.Enabled = True
Command2.Enabled = False
Command3.Enabled = False
End Sub
Private Sub Winsock1_Close()
Command1.Enabled = True
Command2.Enabled = False
Command3.Enabled = False
Winsock1.Close
Text3.Text = "已与服务器断开" + Chr$(13) + Chr$(10) + Text3.Text
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim c As String
Winsock1.GetData c, vbString
Text2.Text = "对方说的话: " + c + Chr$(13) + Chr$(10) + Text2.Text
End Sub
补充:VB , 网络编程