[DSAPI.DLL下载地址]

在本篇,我将重点介绍DSAPI.DLL中Socket编程的使用。众所周知,Socket用起来不难,但是写起来麻烦。我对Socket进行了封装,进行了高度简化。下面我将通过代码编写一个服务端和一个客户端,注意看,不要惊讶为什么代码这么少,因为一切需要的我都集成在里面了,只需要这几句代码即可。

编写一个Socket服务端

 Private WithEvents 服务端 As New DSAPI.网络相关.Socket传输.服务端_多用户

 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       
        With 服务端
            .端口 = 2000
            .开始监听()
        End With

    End Sub

至此,已经完成了Socket服务端的建立,上面演示的是允许多用户连接的服务端,同时也有DSAPI.网络相关.Socket传输.服务端_单用户,只允许一个用户连接的。

你可以通过服务端的几个事件来完成你需要的几乎所有的功能,服务端事件如下:

服务端_服务状态更改(e As DSAPI.网络相关.Socket传输.服务端_多用户.服务状态)

服务端_接收到数据(e() As Byte, IP As String, Sck As Net.Sockets.Socket)

服务端_收到客户端连接(客户端IP As String, Socket As Net.Sockets.Socket)

服务端_有客户端断开(客户端IP As String)

收到客户端数据时,向该客户端发送消息

   Private Sub 服务端_接收到数据(e() As Byte, IP As String, Sck As Net.Sockets.Socket) Handles 服务端.接收到数据
服务端.向指定客户端发送文本(Sck, "你好啊", System.Text.Encoding.Default)
End Sub

这是简化的发送文本,参数中有Sck是原生的Socket客户端对象,所以这并不影响你直接使用这个对象并向其发送Bytes().

编写一个Socket客户端

Private WithEvents 客户端 As New DSAPI.网络相关.Socket传输.客户端

至此,你已经完成了Socket客户端的建立,是不是超简单?是的,现在使用客户端的事件和方法,当服务端向该客户端发送消息后,触发“收到消息”事件。

 Private Sub 客户端_收到消息(Bts() As Byte) Handles 客户端.收到消息
Console.WriteLine(Bts)
客户端.发送消息(System.Text.Encoding.Default.GetBytes("谢谢你,我已经收到消息"))
End Sub

客户端有3个事件可用:

出错

收到消息

断开连接

好了,你已经学会了如何使用DSAPI里的Socket服务端和客户端来进行通信,关于DSAPI.网络相关部分,至此已经结束,若有其他补充内容,以后我会补上。

DSAPI多功能组件编程应用-网络相关(下)的更多相关文章

  1. DSAPI多功能组件编程应用-网络相关(上)

    [DSAPI.DLL下载地址]  DSAPI多功能组件编程应用-网络相关,网络相关编程有很多很多,这里讲解一下封装在DSAPI中的网络相关的功能,这些都是本人简化到极点的功能了,可以在软件开发过程中节 ...

  2. DSAPI多功能组件编程应用-网络相关(中)

    [DSAPI.DLL下载地址] 在中篇,我将演示比上篇稍微复杂点的功能.如HTTP监听和局域网广播. 有时,我们会有这样的需求:用户通过浏览器来访问获取数据,我们的程序需要监听指定端口,根据不同的请求 ...

  3. DSAPI多功能组件编程应用-反射相关

    [DSAPI.DLL下载地址]       在.Net中,反射技术是一种入门困难,熟用快速的东西,对于没有接触过反射技术的程序员来说的确是头疼的,看一旦自己写过了,上手就非常简单了.在本节,将部分.N ...

  4. DSAPI多功能组件编程应用-HTTP监听服务端与客户端_指令版

    前面介绍了DSAPI多功能组件编程应用-HTTP监听服务端与客户端的内容,这里介绍一个适用于更高效更快速的基于HTTP监听的服务端.客户端. 在本篇,你将见到前所未有的超简化超傻瓜式的HTTP监听服务 ...

  5. DSAPI多功能组件编程应用-参考-Win32API常数

    DSAPI多功能组件编程应用-参考-Win32API常数 在编程过程中,常常需要使用Win32API来实现一些特定功能,而Win32API又往往需要使用一些API常数,百度搜索常数值,查手册,也就成了 ...

  6. DSAPI多功能组件编程应用-HTTP监听服务端与客户端

    本文中,演示了使用DSAPI.网络相关.HTTP监听,快速建立服务端和客户端. HTTP监听服务端的作用,是监听指定计算机端口,以实现与IIS相同的解析服务,提供客户端的网页请求,当然,这不仅仅是应用 ...

  7. DSAPI多功能组件编程应用-文件类

    [DSAPI.DLL下载地址]     本节内容,是属于"无需过多说明"就能使用的功能.由于实在是太简单,我就简单地示例一下. DSAPI.文件类.获取可读性强的字节大小信息(&q ...

  8. DSAPI多功能组件编程应用-DS提示气泡

    首先下载DSAPI.dll.并在项目中引用. 该功能包括在DSAPI1.0.1.1及更高版本号,DLL请到本人资源里查找. Private Sub Button1_Click(sender As Ob ...

  9. DSAPI多功能组件编程应用-使用外部字体(包括资源文件)

    在软件开发过程中,尤其是比较个性化的程序,有时会需要使用非安装字体文件,比如发布的时候附带了一个专用字体,或者该字体文件直接被放入项目资源,当不希望把这个字体安装到用户的操作系统但又想使用它时,本示例 ...

随机推荐

  1. Round #4 RMQ问题ST算法

    前几天群里看到有人问[JSOI2008]最大数,一道很简单的问题,线段树无脑做,但是看到了动态ST,emmm,学学吧,听大佬说了下思路,还好,不难的: 四道题都可以用其他数据结构或做法代替,例如线段树 ...

  2. echarts、higncharts折线图或柱状图显示数据为0的点

    echarts.higncharts折线图或柱状图只需要后端传到前端一段json数据,接送数据的x轴与y周有对应数据,折线图或柱状图就会渲染出这数据. 比如,x轴表示美每天日期,y轴表示数量.他们的数 ...

  3. HTML图片标签路径解析

    img标签中src属性表示的是引用的图片路径,有两种路径类型: 1. 绝对路径    2. 相对路径. 绝对路径:使用图片在硬盘上的绝对位置来访问图片,通常是从根目录开始,向下一个目录一个目录的寻找. ...

  4. C#嵌套类

    { "children" : [{ "children" : [{ "children" : [], "name" : ...

  5. navicat实现Mysql数据备份

    方法/步骤     使用navicat工具连接mysql数据库,这里以navicat for Mysql工具为例.如果数据库在本机,那么连接ip处写localhost即可,如果数据库在其他机器,那需要 ...

  6. 使用cloudreve搭建个人网盘

    这次将腾迅的对象存储cos挂载到了服务器上,就想自己搭建个网盘,虽然每月50G的空间和10G流量,也够用了 之前写过使用owncloud来搭建个人网盘,使用起来挺方便,就是不知道为什么感觉打开速度慢, ...

  7. 如何将多个数据的- 转为:来匹配josn格式

    var str = `北京 2 河北 3 河北-邯郸 301 河北-保定 302 河北-邢台 303 山东 4 山东-青岛 401 山东-烟台 402`; var arrStr = str.split ...

  8. 在vue中使用setter改写父子组件传的值

    概述 最近在用muse ui的时候碰到一个问题,简单来说是这样的,父子之间传值,父组件和子组件使用相同的props命名,并且子组件不用emit,而用等号赋值. 最后使用计算属性的setter函数解决了 ...

  9. [Swift]LeetCode150. 逆波兰表达式求值 | Evaluate Reverse Polish Notation

    Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -, ...

  10. [Swift]LeetCode218. 天际线问题 | The Skyline Problem

    A city's skyline is the outer contour of the silhouette formed by all the buildings in that city whe ...