vb实现TCPIP协议实例详解(使⽤Socket实现)
最近因项⽬需求要求实现基于vb的TCP/IP协议,在⽹上也没有到特别好的实例,故在学习完成后写下如下⽂字,仅供⼤家学习,如有错误还请⼤家批评指正,感谢!
本⽂主要由三部分组成,第⼀部分展⽰代码实现的功能;第⼆部分解释部分与代码相关的基础知识;第三部分讲解服务器端与客户端的实现。
代码在参考代码上做了两个调整,1. 增加功能:服务器端可向客户端发送数据;2.删除功能:客户端A向服务器端发送的数据,客户端B也能收到
⼀. 代码执⾏效果
把这⼀部分放在最开始是想让⼤家对功能有个直观的印象,也好看看本⽂所述与您的需求是否⼀致。
服务器端开始监听,⽽后客户端开始发送连接请求,连接成功后,客户端喝服务器端可进⾏通信。
tcpip协议pdf⼆. 相关基础知识
加⼊本章的初衷是,在学习代码的过程中,由于这部分知识的匮乏,增加了读懂代码的难度,我了解这些知识后,问题也变的迎刃⽽解。
本部分简要说明三个⽅⾯知识,2.1 TCP/IP握⼿步骤,2.2 使⽤IAsyncResult进⾏Socket异步通信 2.3 线程(委托的使⽤)
如您已对这三个⽅⾯的知识有所了解,则可移步第三部分。
2.1 TCP/IP握⼿步骤
Step1: 在创建连接之前,服务器进⼊监听(Listen)状态,即准备接收客户端的连接请求
Step2: 客户端向服务器发送连接请求
Step3: 服务器向客户端发送应答
Step4: 客户端向服务器发送应答
2.2 使⽤IAsyncResult进⾏Socket异步通信
关于这部分,我想您只需要记住⼀句话就好
BeginXXXX/EndXXXXX⽅法重载可以传⼊⼀个Object类型的参数,这样可以把⼀些需要⽤到的对象传进去,在⽅法内部,通过IAsyncResult的AsyncState属性就可以把这个Object类型的参数取出来。
2.3 线程(委托的使⽤)
Step1:创建⼀个委托
Delegate Sub DelegateType()
Step2: 声明、实例化⼀个委托并绑定Sample⽅法
Dim a as New DelegateType(AddressOf Sample)
Step3: 通过调⽤委托,间接调⽤⽅法Sample
a.Invoke()
三. 代码各功能模块讲解
3.1 服务器端
服务器端有两个类,ConnectionInfo⽤于对客户端进⾏读写操;MonitorInfo⽤于操作每个客户端与服务器端的connection MonitorInfo结构模块:
ConnectionInfo结构模块:
服务器模块结构:
3.2 客户端
与服务器端类似,可⾃⾏学习。
如有讲解需要,可以留⾔让我知道。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论