VB winsock 控件使用详解(客户端/服务端)

冰不孤独 冰不孤独 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
对服务器端可用一个WINSOCK控件数组方式,但最好是用两个,一个WINSOCK1 用来连接,另一个WINSOCK2用侦听!
代码如下,
1.FOR 可以首先自定一批连接用户上限。生成WINSOCK控件数组。当然也可以在WINSOCK2检测到连 接后在LOAD !

For i = 1 To 100
Load W1(i)
Next i
2.WINSOCK2侦听端口,当有客户端连接进来的时候,就会触发

W2.LocalPort = 4666
W2.Listen
‘-----------------------------------
Private Sub W2_ConnectionRequest(ByVal requestID As Long)
For i = 1 To 100 这时就可以判断,winsock1控件组有那个状态是未使用的。通过STATE状态来判断,但这种方式有偶尔造成客户端一些问题,此项为基础教程,不深究。
If W1(i).State = 0 Then
W1(i).Accept requestID ‘如果是未连接状态。将REQUESTID 这个连接给到W1进行连接。 REQUESTID 这里就是客户端的IP,端口会自动分配!
Exit For ’并结束FOR
End If
Next i
End Sub

当连接建立完成后,就会触发
Private Sub W1_DataArrival(Index As Integer, ByVal bytesTotal As Long)
On Error Resume Next
Dim s() As Byte
Dim gh() As Byte
W1(Index).GetData s ’这里的S 产生过程(客户端发送请求后,客户端会有STATE的状态会发生改变,此时即可向服务器发送数据。此时这个数据就可以自己处理,收到客户端的数据后做什么操作
例如下例子:
If Mid(StrConv(s, vbUnicode), 1, 4) = "sxxx" Then
Label4.Caption = Val(Label4.Caption) + 1
List1.AddItem Mid(StrConv(s, vbUnicode), 5, Len(StrConv(s, vbUnicode)) - 3)
List2.AddItem Index
Text3.Text = Text3.Text & vbNewLine & Mid(StrConv(s, vbUnicode), 5, Len(StrConv(s, vbUnicode)) - 3) & " 上线了!"
For u = 1 To Val(Text4.Text)
If W1(u).State = 7 Then
W1(u).SendData "欢迎" & Mid(StrConv(s, vbUnicode), 5, Len(StrConv(s, vbUnicode)) - 3) & "上线!
End If
DoEvents
Next u
End If
End Sub
上面代码,做了一个当其中一个客户端上线的时候,广播给所有在线的成员!


对于客户端的动作
第一步,连接
W3.RemoteHost = "127.0.0.1" ‘指定服务器IP
W3.RemotePort = 4000 端口
W3.Connect 开始连接
If W3.State <> 9 Then 局域网测试,完全就可以直接写。 判断STATE状态。是否连接成功
MsgBox "连接服务器成功", 64, "提示"

Else
MsgBox "连接服务器失败", 64, "提示"
End If
’当连接成功后。直接使用 W3.SendData "我是一个上线数据“ 发送消息。!
同样,客户端也是通过
Private Sub W3_DataArrival(ByVal bytesTotal As Long)
Dim s As String
W3.GetData s
Text1.Text = s

End Sub
来接收数据。。。。。


以上就是一个非常 简单的客户端,和服务端的写法。
...全文

相关推荐

vb源码网络资源管理器(cs模式)

该应用允许客户端通过Winsock控件与服务端建立连接,并实时获取并显示服务器端的文件目录结构。首先,我们要理解VB中的Winsock控件。

jifenglang

vb中利用winsock控件,tcp协议实现多服务端连接

关于vb中利用winsock控件,tcp协议实现多服务端连接的问题,网上的资料很多,  但是都是复制来复制去,来来去去就那一两个例子,而且大都无法运行,方法不够简洁,给初学者带来一定的难度。  我也是刚接触vb不久的初学者,结合msdn对多连接的介绍,  于是就有了下面的例子(目 前最短的最好理解的,不信可以去Google比较一下)  原创by:Login 欢迎到小站www.host9

bushizhuanjia

Microsoft的Windows Sockets API是Windows下的网络应用程序接口

通过使用Winsock控件,开发者可以轻松创建客户端/服务器(C/S)应用程序,无需深入理解TCP/IP协议的底层细节,如网络字节序转换等。

xq122

VB winsock服务端连接多个客户端示例

综上所述,VB winsock服务端连接多个客户端示例是一个实用的教程,它涵盖了网络编程的基础知识,包括Winsock控件的使用、C/S架构的实现、动态数组管理、多连接处理等。

guiji0002

VB.NET中Winsock控件的使用详解

### VB.NET中Winsock控件的使用详解#### 一、引言在VB.NET开发环境中,Winsock控件是一种非常强大的工具,用于实现网络通信功能。

赵一一
评论 3
收藏 已收藏
分享
返回顶部
冰不孤独
网络编程 1,502 成员 18,427 内容