hololens2 通信 之 Windows.Networking.Sockets
Windows.Networking.Sockets:
这个命名空间用来提供用于网络通信的套接字和 websocket 类,以及用于 UWP 应用程序后台接收的实时网络通知的类。
- 所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议栈进行交互的接口 。
Socket(套接字)可以看成是两个网络应用程序进行通信时,各自通信连接中的端点,这是一个逻辑上的概念。它是网络环境中进程间通信的API(应用程序编程接口),也是可以被命名和寻址的通信端点,使用中的每一个套接字都有其类型和一个与之相连进程。通信时其中一个网络应用程序将要传输的一段信息写入它所在主机的 Socket中,该 Socket通过与网络接口卡(NIC)相连的传输介质将这段信息送到另外一台主机的 Socket中,使对方能够接收到这段信息。 Socket是由IP地址和端口结合的,提供向应用层进程传送数据包的机制
套接字Socket=(IP地址:端口号),套接字的表示方法是点分十进制的lP地址后面写上端口号,中间用冒号或逗号隔开。每一个传输层连接唯一地被通信两端的两个端点(即两个套接字)所确定。例如:如果IP地址是210.37.145.1,而端口号是23,那么得到套接字就是(210.37.145.1:23)
简要介绍其中两个主要类:
StreamSocketListener 类:
它支持使用 TCP 流套接字或 Bluetooth RFCOMM 侦听传入的网络连接。StreamSocketListener 类支持使用流套接字侦听传入的网络连接并接受连接。
典型的运行顺序如下:
- 创建StreamSocketListener 对象
- 使用 Control 属性检索 StreamSocketListenerControl 对象并设置所需的套接字服务质量。
- 将 ConnectionReceived 事件分配给事件处理程序。
- 调用 BindServiceNameAsync 或 bindenppointasync 方法绑定到本地 TCP 端口号或服务名称。对于 Bluetooth RFCOMM,本地服务名称参数是 Bluetooth 服务 ID。
- StreamSocketListenerConnectionReceivedEventArgs 对象来检索创建的 StreamSocket 对象的 Socket 属性。
- 使用 StreamSocket 对象发送和接收数据。
- 调用 Close 方法停止侦听和接受传入的网络连接,并释放与 StreamSocketListener 对象关联的所有非托管资源。接收到连接时创建的任何 StreamSocket 对象都不会受到影响,并且可以根据需要继续使用。
在 StreamSocketListener 类上调用异步方法时,必须编写处理异常的代码。参数验证错误、名称解析错误和网络错误可能导致异常。网络错误的异常(例如连接丢失、连接故障和服务器故障)可能随时发生。这些错误导致抛出异常。如果应用程序没有处理异常,则可能导致整个应用程序被运行时终止。
StreamSocket 类:
StreamSocket 类支持在 UWP 应用程序中使用 TCP 上的流套接字或蓝牙 RFCOMM 的网络通信。
对于一个客户端应用程序,使用 StreamSocket 最常见的操作序列如下:
- 创建StreamSocket
- 使用 Control 属性获取 StreamSocketControl 对象,并在调用一个 ConnectAsync 方法之前设置 StreamSocketControl 对象上的任何属性。
- 调用一个 ConnectAsync 方法来建立与远程端点的连接。对于蓝牙,远程服务名称是一个蓝牙服务 ID。如果 TCP 需要 SSL/TLS 连接,或者需要立即对蓝牙进行加密,那么可以使用一些 ConnectAsync 方法来指定。如果在发送和接收 TCP 套接字的一些初始数据之后需要 SSL/TLS 连接,那么稍后可以调用 UpgradeToSslAsync 方法来将连接升级到使用 SSL。
- 获取 OutputStream 属性将数据写入远程主机。
- 获取 InputStream 属性以从远程主机读取数据。
- 根据需要读写数据。
- 调用 Close 方法断开套接字,中止任何挂起的操作,并释放与 StreamSocket 对象关联的所有非托管资源。
hololens2 通信 之 Windows.Networking.Sockets相关推荐
- 在WEBSTART中实现串口通信(WINDOWS版)
在WEBSTART中实现串口通信(WINDOWS版) 看到这个题目,你是不是问:这跟在JAVA中实现串口通信有什么区别?在JAVA中能做在WEBSTART中不就 一样吗? 真聪明,的确是这样的,但事实 ...
- java和打印机通信,通过Windows驱动程序与热敏打印机进行双向通信
我需要开发一个应用程序来打印热敏打印机,如Epson ESC / POS协议或ZPL Zebra协议 . 我可以使用网络打印机,串口打印机以及窗口的假脱机打印机将原始代码写入打印机 . 当我需要&qu ...
- VC串口通信(Windows API)
本文转载自基于Windows API的VC++串口通信详解,以下附上大白的理解. 简介 在Win32下,可以使用两种编程方式实现串口通信,其一是使用ActiveX控件,这种方法程序简单,但欠灵活.其二 ...
- socket编程TCP/IP通信(windows下,C++实现)
1.简单理解什么是Socket? 通俗理解: Socket翻译成中文是套接字,同时也有插座的意思.可以按照插座的意思来理解它,插座就是连接电源和机器的中间件,同理,socket就是连接两个进程或应用的 ...
- Windows Networking 4: CloudMonitor 引发的网络问题排查一则
事情起因 近期一个比较有意思的问题,有用户反馈说他们的服务器一直在连接阿里云的服务,把端口都占满了,导致网络中断,业务连接建立不起来,telnet本地端口也不通. 按照产品设计的角度来说,这种情况一般 ...
- python3管道通信demo(windows)
安装pywin32库 pip install pywin32 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com 文档 ht ...
- [转]如何借助 TLS/SSL 确保套接字连接的安全(使用 C#/VB/C++ 和 XAML 的 Windows 应用商店应用)...
本文转自:http://msdn.microsoft.com/zh-cn/library/windows/apps/jj150597.aspx 本主题将展示在使用 StreamSocket 功能时,如 ...
- Windows 10新功能
Windows 10 中面向开发人员的新增功能 Windows 10 及新增的开发人员工具将提供新通用 Windows 平台支持的工具.功能和体验.在 Windows 10 上安装完工具和 SDK 后 ...
- 《果壳中的C# C# 5.0 权威指南》 (09-26章) - 学习笔记
<果壳中的C# C# 5.0 权威指南> ========== ========== ========== [作者] (美) Joseph Albahari (美) Ben Albahar ...
最新文章
- 多线程处理缓慢_华为昇腾,AI推理性能超越对手一倍:软件挖掘处理器全部潜力...
- CuteEditor 编辑器的字体样式无法控制的问题解决
- mvn deploy 报错:Return code is: 400, ReasonPhrase: Bad Request. -
- cmake编译android平台的libPoco
- MySQL-数据库监控初探
- 2021年,Java开发者值得学习的13项技能
- java 正则表达式 中文数字和字母_Java中过滤出字母、数字和中文的正则表达式 | 学步园...
- oracle 11gogg,【OGG】Oracle GoldenGate 11g (二) GoldenGate 11g 单向同步配置 上
- 14006.xilinx-SDK在线jtag调试
- 目标追踪-背景差算法
- 在SpringBoot中优雅的实现定时任务
- Focal Loss 和 LightGBM 多分类应用-python实现
- SpringMVC工作原理(含案例图解)
- 树形结构的处理——组合模式(一)
- 618买什么运动装备、最值得入手的运动装备合集
- 二级计算机考试准考证打印入口
- 为什么工程师需要提高沟通技巧
- btrfs基本介绍及应用
- 魔点G2一台小巧高颜值的智能人脸考勤门禁机
- Python批量打开文件以及获取文件名、目录及路径