UDP信号多个电脑的信息传输测试、配置指南

最近要做一个东西,关于一个软件上得到的信号,如何通过连接的局域网,将数据传输出去。我没做过相关的东西,但是我想应该和软件连接数据库的过程大致是差不多的,就一个ip和一个端口号啥的。

一.问题思路

多个设备同时连接同一个局域网,在一个电脑上发送一个数据,在别的电脑上可以实时接收这个数据。在找工作面试的时候,提前背了相关TCP、UDP的特性,由于TCP是面向连接的,虽然传输数据是可靠的,但是速率是比UDP慢的。因此,我想了想使用UDP传输是比较合适的,这个地方要用到Socket编程。当时面试只是背了背什么C++版本的Socket编程,其大致和java之中的Socket类似,但是还没有用过,趁着这个机会学一下。

二.ip设置与端口的设置

首先,查看本机ip。

按下windows键 + r ,打开运行,输入cmd。

在运行框里输入ipconfig(都是基本操作),查看ip地址。

可以看到我的接收端的ip地址是192.168.1.144.

我现在自己的电脑上进行试一下。

接收端代码:

#define _WINSOCK_DEPRECATED_NO_WARNINGS
#include <iostream>
#include <WinSock2.h>

#pragma comment(lib, "ws2_32.lib")

int main() {
	// 初始化Winsock
	WSADATA wsaData;
	if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) {
		std::cout << "初始化套接字" << std::endl;
		return -1;
	}

	// 创建套接字
	SOCKET receiverSocket = socket(AF_INET, SOCK_DGRAM, 0);
	if (receiverSocket == INVALID_SOCKET) {
		std::cout << "创建套接字失败" << std::endl;
		WSACleanup();
		return -1;
	}

	// 绑定监听地址
	sockaddr_in receiverAddress;
	receiverAddress.sin_family = AF_INET;
	receiverAddress.sin_port = htons(1234);  // 设置监听端口号
	receiverAddress.sin_addr.s_addr = INADDR_ANY;
	if (bind(receiverSocket, (sockaddr*)&receiverAddress, sizeof(receiverAddress)) == SOCKET_ERROR) {
		std::cout << "绑定套接字失败" << std::endl;
		closesocket(receiverSocket);
		WSACleanup();
		return -1;
	}

	// 接收数据
	char buffer[1024];
	sockaddr_in senderAddress;
	int senderAddressSize = sizeof(senderAddress);
	int receivedBytes = recvfrom(receiverSocket, buffer, sizeof(buffer), 0, (sockaddr*)&senderAddress, &senderAddressSize);
	if (receivedBytes == SOCKET_ERROR) {
		std::cout << "接收数据失败" << std::endl;
	}
	else {
		buffer[receivedBytes] = '\0';
		std::cout << "接收到的数据: " << buffer << std::endl;
	}

	// 清理资源
	closesocket(receiverSocket);
	WSACleanup();

	getchar();

	return 0;
}

发送端代码:

#define _WINSOCK_DEPRECATED_NO_WARNINGS
#include <iostream>
#include <WinSock2.h>

#pragma comment(lib, "ws2_32.lib")

int main() {

	// 初始化Winsock
	WSADATA wsaData;
	if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) {
		std::cout << "初始化Socket失败" << std::endl;
		return -1;
	}

	// 创建套接字
	SOCKET senderSocket = socket(AF_INET, SOCK_DGRAM, 0);
	if (senderSocket == INVALID_SOCKET) {
		std::cout << "创建Socket失败" << std::endl;
		WSACleanup();
		return -1;
	}

	// 设置接收方地址
	sockaddr_in receiverAddress;
	receiverAddress.sin_family = AF_INET;
	receiverAddress.sin_port = htons(1234);  // 设置接收方的监听端口号
	receiverAddress.sin_addr.s_addr = inet_addr("192.168.1.144");

	// 发送数据
	const char* message = "你好呀!小杨同学";
	if (sendto(senderSocket, message, strlen(message), 0, (sockaddr*)&receiverAddress, sizeof(receiverAddress)) == SOCKET_ERROR) {
		std::cout << "发送数据失败" << std::endl;
	}
	else {
		std::cout << "成功发送数据" << std::endl;
	}

	// 清理资源
	closesocket(senderSocket);
	WSACleanup();

	return 0;
}

最终的结果,可以看到两台电脑正常通信:

三.问题的出现

一台机器上进行通信是完全没有问题的,但是当两台机器进行通信的时候,其中一台给另外一台发送消息,是正常的,但是当反过来的时候发现通信不了。

我的防火墙已经关闭了,应该没啥问题哈,直接ping一下看看

但是ping了一下发现可以ping通呀。

四.问题的解决

解决方案一:防火墙关闭---端口

接下来去看一下相应的端口状态:使用windows + r,打开任务管理器 -> 性能

性能 -> 打开资源监视器

查看端口的权限情况

可以发现我的监听端口一栏之中,UDP完全是不允许的。

那就继续深究一下端口的问题,发现前面的那个防火墙状态只是用来防病毒的,并不是用来监视端口的。首先打开控制面板

启用或者关闭防火墙

关闭防火墙

发现还是不可以。

查看端口信息,可以看到1235端口并没有指定IPv4。

那么我们需要给1235端口号指定一个IPv4的地址。

这个地方我就直接将端口号改为了本机端口:

发现偶尔可以接收到消息,有的时候还是接收不到消息。

解决方案二:多次传输

想一下UDP的传输协议,这是不可靠的传输协议,因此,重新修改代码,发现与上面那个地址是否绑定无关。

接收端:我将信号变为一直接收的状态

while (1)
	{
		// 接收数据
		char buffer[1024];
		sockaddr_in senderAddress;
		int senderAddressSize = sizeof(senderAddress);
		int receivedBytes = recvfrom(receiverSocket, buffer, sizeof(buffer), 0, (sockaddr*)&senderAddress, &senderAddressSize);
		if (receivedBytes == SOCKET_ERROR) {
			std::cout << "接收数据失败" << std::endl;
		}
		else {
			buffer[receivedBytes] = '\0';
			std::cout << "接收到的数据: " << buffer << std::endl;
		}
	}

发送端:将信号发送10次。

// 发送数据
	const char* message = "你好呀!小杨同学";
	for (int i = 0; i < 10; i++)
	{
		if (sendto(senderSocket, message, strlen(message), 0, (sockaddr*)&receiverAddress, sizeof(receiverAddress)) == SOCKET_ERROR) {
			std::cout << "发送数据失败" << std::endl;
		}
		else {
			std::cout << "成功发送数据" << std::endl;
		}
	}

结果:发送了10次数据,只接收到了八个数据。

通过上述数据说明,在进行使用的过程之中,既然寻求速度选择了UDP发送数据,第一个注意点是需要将防火墙进行关闭。第二个注意点是注意数据的丢失情况,只进行发送一次可能出现发送不成功的问题。

补充解决方案三:方案一的替代版

一般而言,电脑上的防火墙是不允许关闭的,因此,有没有什么更好的方案去替代方案一。

将防火墙进行打开, 防火墙 -> 高级设置

入站规则 -> 新建规则

端口

只允许连接

随便起个名字

可以看到也是正常使用的。

五.界面设计

(1)发送端

其中,三个输入框之中的变量绑定分别为

CIPAddressCtrl m_ip; // ip
CEdit m_port;        // 端口号
CEdit m_edit;        // 发送数据

将中间的最大的发送数据的编辑框设置属性

需要注意在相应的属性设置栏之中,不使用预编译头文件,否则会与C6990错误产生冲突。

发送端代码进行测试:

可以发现是能够进行正常的使用的。

(2)接收端

接收端的代码就不详细解释了,详细的资源可以在博客之中进行下载。

最终的测试界面是正确的。

代码下载地址:

https://download.csdn.net/download/m0_47489229/88671248icon-default.png?t=N7T8https://download.csdn.net/download/m0_47489229/88671248

  • 22
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
内容简介 本书详细介绍CCNA考试的内容,主要有:互连网络的模型、Cisco路由器、交换机和集线器的特点;Cisco IOS软件的初步知识;TCP/IP协议套件的综合概括;管理广域网,配置ISDN、帧中继和ATM;学习IP配置;Novell IPX协议栈、IPX封装类型和SAP及RIP配置;使用访问表进行基本的通信量管理;默认的局域网连网,跨域配置VLAN。 在每一章中,均有针对认证目标的详细说明、有关认证的总结信息、2分钟练习和自我测试题,可帮助读者更好地理解认证的内容。 目录 目 录 序言 前言 第1章 网络互连介绍 1 1.1 认证目标1.01:网络互连模型 1 1.1.1 网络的发展 2 1.1.2 OSI模型 2 1.1.3 封装 3 1.2 认证目标1.02:物理层和数据链路层 4 1.2.1 DIX和802.3 Ethernet 5 1.2.2 802.5令牌环网 7 1.2.3 ANSI FDDI 8 1.2.4 MAC地址 9 1.2.5 接口 9 1.2.6 广域网服务 12 1.3 认证目标1.03:网络层和路径确定 17 1.3.1 第3层地址 17 1.3.2 已选择路由协议和路由选择协议 17 1.3.3 路由选择算法和度 18 1.4 认证目标1.04:传输层 18 1.4.1 可靠性 18 1.4.2 窗口机制 18 1.5 认证目标1.05:上层协议 18 1.6 认证目标1.06:Cisco路由器、交换机 和集线器 18 1.7 认证目标1.07:配置Cisco交换机 和集线器 20 1.8 认证总结 20 1.9 2分钟练习 22 1.10 自我测试 23 第2章 从Cisco IOS软件开始 31 2.1 认证目标 2.01:用户界面 31 2.1.1 用户模式和特权模式 31 2.1.2 命令行界面 32 2.2 认证目标2.02:路由器基础 35 2.2.1 路由器元素 35 2.2.2 路由器模式 35 2.2.3 检查路由器状态 37 2.2.4 Cisco发现协议 38 2.2.5 远程访问路由器 39 2.2.6 基本测试 39 2.2.7 调试 40 2.2.8 路由基础 41 2.3 认证目标2.03:初始配置 43 2.3.1 虚拟配置注册表设置 46 2.3.2 启动序列:引导系统命令 47 2.3.3 将配置传送到服务器或从服务器 上复制配置 47 2.4 认证目标2.04:自动安装配置数据 49 2.5 认证总结 49 2.6 2分钟练习 50 2.7 自我测试 51 第3章 IP寻址 58 3.1 认证目标3.01:IP地址类 58 3.1.1 IP地址的结构 58 3.1.2 特殊情况:回路、广播和网 络地址 59 3.1.3 识别地址类 60 3.1.4 子网掩码的重要性 61 3.1.5 二进制和十进制互相转换 62 3.2 认证目标3.02:子网划分和子网掩码 64 3.2.1 子网划分的目的 65 3.2.2 在默认子网掩码中加入位 65 3.3 认证目标3.03:子网规划 66 3.3.1 选择子网掩码 66 3.3.2 主机数目的影响 66 3.3.3 确定每个子网的地址范围 67 3.4 认证目标3.04:复杂子网 68 3.4.1 子网位穿越8位位组边界 68 3.4.2 变长子网掩码 69 3.4.3 超网划分 70 3.5 认证目标 3.05:用Cisco IOS配 置IP地址 71 3.5.1 设置IP地址和参数 71 3.5.2 主机名称到地址的映射 71 3.5.3 使用ping 72 3.5.4 使用IP TRACE和Telnet 73 3.6 认证总结 73 3.7 2分钟练习 74 3.8 自我测试 75 第4章 TCP/IP协议 88 4.1 认证目标 4.01:应用层服务 89 4.2 认证目标 4.02:表示和会话层服务 89 4.2.1 远程过程调用 89 4.2.2 Socket 89 4.2.3 传输层接口 90 4.2.4 NetBIOS 90 4.3 认证目标4.03:协议的详细结构 90 4.3.1 传输层 91 4.3.2 TCP 91 4.3.3 UDP 93 4.4 认证目标4.04:网络层 94 4.4.1 网际协议 94 4.4.2 地址解析协议 95 4.4.3 反向地址解析协议 96 4.4.4 逆向地址解析协议 96 4.4.5 网际控制消息协议 96 4.5 认证目标4.05:操作系统命令 97 4.5.1 UNIX 97 4.5.2 32位Windows 98 4.6 认证总结 98 4.7 2分钟练习 99 4.8 自我测试 100 第5章 IP路由选择协议 108 5.1 认证目标5.01:为什么使用路由 选择协议 108 5.2 认证目标5.02:静态路由和动 态路由 114 5.3 认证目标 5.03:默认路由 117 5.4 认证目标 5.04:链路状态和距 离向量 119 5.4.1 距离向量路由选择协议 119 5.4.2 链路状态路由选择协议 123 5.4.3 内部和外部网关协议 124 5.5 认证目标 5.05:RIP 124 5.6 认证目标 5.06:IGRP 127 5.7 认证目标 5.07:OSPF 129 5.8 认证总结 131 5.9 2分钟练习 132 5.10 自我测试 133 第6章 IP配置 141 6.1 认证目标 6.01:IP配置命令 141 6.2 认证目标 6.02:配置静态路由 141 6.3 认证目标 6.03:配置默认路由 144 6.4 认证目标 6.04:配置RIP路由选择 144 6.5 认证目标 6.05:配置IGRP路由 选择 145 6.6 认证目标 6.06:IP主机表 147 6.7 认证目标 6.07:DNS和DHCP配置 148 6.7.1 DNS配置 148 6.7.2 转发DHCP请求 148 6.8 认证目标 6.08:辅助寻址 150 6.9 认证总结 151 6.10 2分钟练习 151 6.11 自我测试 152 第7章 配置Novell IPX 158 7.1 认证目标 7.01:IPX协议栈 158 7.2 认证目标 7.02:IPX数据报 159 7.2.1 IPX地址编码 159 7.2.2 IPX路由选择 160 7.2.3 内部网络 160 7.3 认证目标 7.03:IPX封装类型 161 7.3.1 Etherent_II 162 7.3.2 Ethernet_802.3 162 7.3.3 Ethernet_802.2 162 7.3.4 Ethernet_SNAP 163 7.3.5 多重帧类型的路由选择 163 7.4 认证目标 7.04:SAP和RIP 165 7.4.1 SAP 165 7.4.2 SAP和RIP操作实例 167 7.5 认证目标 7.05:IPX配置 169 7.5.1 准备 169 7.5.2 启用IPX和配置接口 169 7.5.3 路由选择协议 172 7.6 认证总结 173 7.7 2分钟练习 173 7.8 自我测试 174 第8章 AppleTalk的配置 182 8.1 认证目标 8.01:AppleTalk 协议栈 183 8.1.1 物理层与数据链路层 183 8.1.2 网络层 183 8.1.3 高层协议 183 8.2 认证目标 8.02:AppleTalk服务 185 8.3 认证目标 8.03:AppleTalk寻址 185 8.3.1 地址结构 187 8.3.2 地址分配 187 8.4 认证目标 8.04:AppleTalk区域 188 8.5 认证目标 8.05:AppleTalk 路由选择 189 8.6 认证目标 8.06:AppleTalk 发现模式 190 8.7 认证目标 8.07:AppleTalk配置 191 8.7.1 所需的AppleTalk命令 191 8.7.2 AppleTalk过滤 192 8.7.3 验证和监视AppleTalk的配置 194 8.8 认证总结 195 8.9 2分钟练习 196 8.10 自我测试 196 第9章 用访问列表管理基本通信量 205 9.1 认证目标 9.01:标准IP访问列表 205 9.2 认证目标 9.02:扩展IP访问列表 210 9.3 认证目标 9.03:命名访问列表 211 9.4 认证目标 9.04:标准IPX访问列表 213 9.5 认证目标 9.05:IPX SAP过滤 214 9.6 认证目标 9.06:AppleTalk访问列表 218 9.7 认证总结 220 9.8 2分钟练习 221 9.9 自我测试 222 第10章 广域连网 227 10.1 认证目标10.01:配置ISDN 227 10.1.1 配置ISDN BRI 227 10.1.2 配置ISDN PRI 229 10.2 认证目标10.02:配置X.25 229 10.3 认证目标10.03:配置帧中继 231 10.3.1 虚电路 232 10.3.2 差错校正 233 10.3.3 逻辑接口 233 10.3.4 在Cisco路由器上配置帧中继 233 10.4 认证目标10.04:配置ATM 235 10.5 认证目标10.05:配置PPP和多 链路PPP 238 10.5.1 PPP配置 238 10.5.2 配置多链路PPP 240 10.6 认证总结 241 10.7 2分钟练习 242 10.8 自我测试 243 第11章 虚拟局域网 250 11.1 认证目标11.01:交换和VLAN 250 11.2 认证目标11.02:生成树协议 和VLAN 254 11.3 认证目标11.03:默认VLAN配置 255 11.4 认证目标11.04:跨域配置VLAN 256 11.5 认证目标11.05:到VLAN的分组 交换机端口 259 11.5.1 配置ISL主干 264 11.5.2 IEEE 802.1Q主干 265 11.6 VLAN故障诊断 265 11.7 认证总结 267 11.8 2分钟练习 270 11.9 自我测试 271 附录A 自我测试题答案 278 附录B 关于配套光盘 299 附录C 关于Web站点 300 词汇表 301
目 录 序言 前言 第1章 网络互连介绍 1 1.1 认证目标1.01:网络互连模型 1 1.1.1 网络的发展 2 1.1.2 OSI模型 2 1.1.3 封装 3 1.2 认证目标1.02:物理层和数据链路层 4 1.2.1 DIX和802.3 Ethernet 5 1.2.2 802.5令牌环网 7 1.2.3 ANSI FDDI 8 1.2.4 MAC地址 9 1.2.5 接口 9 1.2.6 广域网服务 12 1.3 认证目标1.03:网络层和路径确定 17 1.3.1 第3层地址 17 1.3.2 已选择路由协议和路由选择协议 17 1.3.3 路由选择算法和度 18 1.4 认证目标1.04:传输层 18 1.4.1 可靠性 18 1.4.2 窗口机制 18 1.5 认证目标1.05:上层协议 18 1.6 认证目标1.06:Cisco路由器、交换机 和集线器 18 1.7 认证目标1.07:配置Cisco交换机 和集线器 20 1.8 认证总结 20 1.9 2分钟练习 22 1.10 自我测试 23 第2章 从Cisco IOS软件开始 31 2.1 认证目标 2.01:用户界面 31 2.1.1 用户模式和特权模式 31 2.1.2 命令行界面 32 2.2 认证目标2.02:路由器基础 35 2.2.1 路由器元素 35 2.2.2 路由器模式 35 2.2.3 检查路由器状态 37 2.2.4 Cisco发现协议 38 2.2.5 远程访问路由器 39 2.2.6 基本测试 39 2.2.7 调试 40 2.2.8 路由基础 41 2.3 认证目标2.03:初始配置 43 2.3.1 虚拟配置注册表设置 46 2.3.2 启动序列:引导系统命令 47 2.3.3 将配置传送到服务器或从服务器 上复制配置 47 2.4 认证目标2.04:自动安装配置数据 49 2.5 认证总结 49 2.6 2分钟练习 50 2.7 自我测试 51 第3章 IP寻址 58 3.1 认证目标3.01:IP地址类 58 3.1.1 IP地址的结构 58 3.1.2 特殊情况:回路、广播和网 络地址 59 3.1.3 识别地址类 60 3.1.4 子网掩码的重要性 61 3.1.5 二进制和十进制互相转换 62 3.2 认证目标3.02:子网划分和子网掩码 64 3.2.1 子网划分的目的 65 3.2.2 在默认子网掩码中加入位 65 3.3 认证目标3.03:子网规划 66 3.3.1 选择子网掩码 66 3.3.2 主机数目的影响 66 3.3.3 确定每个子网的地址范围 67 3.4 认证目标3.04:复杂子网 68 3.4.1 子网位穿越8位位组边界 68 3.4.2 变长子网掩码 69 3.4.3 超网划分 70 3.5 认证目标 3.05:用Cisco IOS配 置IP地址 71 3.5.1 设置IP地址和参数 71 3.5.2 主机名称到地址的映射 71 3.5.3 使用ping 72 3.5.4 使用IP TRACE和Telnet 73 3.6 认证总结 73 3.7 2分钟练习 74 3.8 自我测试 75 第4章 TCP/IP协议 88 4.1 认证目标 4.01:应用层服务 89 4.2 认证目标 4.02:表示和会话层服务 89 4.2.1 远程过程调用 89 4.2.2 Socket 89 4.2.3 传输层接口 90 4.2.4 NetBIOS 90 4.3 认证目标4.03:协议的详细结构 90 4.3.1 传输层 91 4.3.2 TCP 91 4.3.3 UDP 93 4.4 认证目标4.04:网络层 94 4.4.1 网际协议 94 4.4.2 地址解析协议 95 4.4.3 反向地址解析协议 96 4.4.4 逆向地址解析协议 96 4.4.5 网际控制消息协议 96 4.5 认证目标4.05:操作系统命令 97 4.5.1 UNIX 97
actionScript 3.0开发人员指南中文版,总共67章,955页。学习actionScript不错的书籍。 目录: 目录 第章:使用日期和时间 管理日历日期和时间 控制时间间隔 日期和时间示例:简单模拟时钟 第章:使用字符串 字符串基础知识 创建字符串 length属性 处理字符串中的字符 比较字符串 获取其他对象的字符串表示形式 连接字符串 在字符串中查找子字符串和模式 转换字符串的大小写 字符串示例:ASCII图表 第章:使用数组 数组基础知识 索引数组 关联数组 多维数组 克隆数组 扩展Array类 数组示例:播放列表 第章:处理错误 错误处理基础知识 错误类型 ActionScript中的错误处理 使用Flash运行时的调试版 在应用程序中处理同步错误 创建自定义错误类 响应错误事件和状态 比较错误类 处理错误示例:CustomErrors应用程序 第章:使用正则表达式 正则表达式基础知识 正则表达式语法 对字符串使用正则表达式的方法 正则表达式示例:Wiki解析程序 第章:使用XML XML基础知识 用于处理XML的EX方法 XML对象 XMLList对象 初始化XML变量 组合和变换XML对象 遍历XML结构 使用XML命名空间 XML类型转换 读取外部XML文档 在ActionScript中使用XML的示例:从Internet加载RSS数据 第章:使用本机JSON功能 JSONAPI概述 定义自定义JSON行为 第章:处理事件 事件处理基础知识 ActionScript事件处理与早期版本事件处理的不同之处 事件流 事件对象 事件侦听器 事件处理示例:闹钟 第章:使用应用程序域 第章:显示编程 显示编程的基础知识 核心显示类 显示列表方法的优点 使用显示对象 处理显示对象 对象动画 舞台方向 动态加载显示内容 显示对象示例:SpriteArranger 第章:使用几何结构 几何结构基础知识 使用Point对象 使用Rectangle对象 使用Matrix对象 几何形状示例:对显示对象应用矩阵转换 第章:使用绘图API 绘制API的基础 Graphics类 绘制线条和曲线 使用内置方法绘制形状 创建渐变线条和填充 将Math类与绘制方法配合使用 使用绘图API进行动画处理 绘制API示例:算法可视化生成器 绘图API高级用法 第章:使用位图 位图使用基本知识 Bitmap和BitmapData类 处理像素 复制位图数据 使用杂点功能制作纹理 滚动位图 利用mipmap处理 位图示例:带动画效果的旋转的月亮 位图图像的异步解码 第章:过滤显示对象 过滤显示对象的基础知识 创建和应用滤镜 可用的显示滤镜 筛选显示对象示例:FilterWorkbench 第章:使用PixelBender着色器 PixelBender着色器基础知识 加载或嵌入着色器 访问着色器元数据 指定着色器输入和参数值 使用着色器 第章:使用影片剪辑 影片剪辑基础知识 使用MovieClip对象 控制影片剪辑播放 使用ActionScript创建MovieClip对象 加载外部SWF文件 影片剪辑示例:RuntimeAssetsExplorer 第章:使用补间动画 补间动画基础知识 在Flash中复制补间动画脚本 合并补间动画脚本 描述动画 添加滤镜 将补间动画与其显示对象关联 第章:使用反向运动 反向运动的基础知识 IK骨架动画处理概述 获取有关IK骨架的信息 实例化IKMover并限制其移动 移动IK骨架 使用弹簧 使用IK事件 第章:在三维(D)环境中工作 D显示对象的基础知识 了解FlashPlayer和AIR运行时中的D显示对象 创建和移动D显示对象 将D对象投影到D视图上 示例:透视投影 执行复杂的D转换 通过三角形获得D效果 第章:文本使用基础知识 第章:使用TextField类 显示文本 选择和操作文本 捕获文本输入 限制文本输入 设置文本格式 高级文本呈现 使用静态文本 TextField示例:报纸风格的文本格式设置 第章:使用Flash文本引擎 创建和显示文本 处理FTE中的事件 设置文本格式 使用字体 控制文本 Flash文本引擎示例:新闻版面布局 第章:使用TextLayoutFramework TextLayoutFramework概述 使用TextLayoutFramework 使用TLF构建文本结构 使用TLF设置文本格式 使用TLF导入和导出文本 使用TLF管理文本容器 使用TLF启用文本选择、编辑和撤消 使用TLF处理事件 在文本内定位图像 第章:处理声音 声音处理基础知识 了解声音体系结构 加载外部声音文件 处理嵌入的声音 处理声音流文件 处理动态生成的音频 播放声音 加载和播放声音时的安全注意事项 控制音量和声相 处理声音元数据 访问原始声音数据 捕获声音输入 声音示例:PodcastPlayer 第章:使用视频 视频基础知识 了解视频格式 了解Video类 加载视频文件 控制视频播放 在全屏模式下播放视频 流式传输视频文件 了解提示点 编写元数据和提示点的回调方法 使用提示点和元数据 监控NetStream活动 视频文件的高级主题 视频示例:视频自动唱片点唱机 使用StageVideo类来实现硬件加速呈现 第章:使用摄像头 了解Camera类 在屏幕上显示摄像头内容 设计摄像头应用程序 连接至用户的摄像头 验证是否已安装摄像头 检测摄像头的访问权限 最优化摄像头视频品质 监控摄像头状态 第章:使用数字权限管理 了解受保护的内容工作流程 NetStream类中与DRM相关的成员和事件 使用DRMStatusEvent类 使用DRMAuthenticateEvent类 使用DRMErrorEvent类 使用DRMManager类 使用DRMContentData类 更新FlashPlayer以支持FlashAccess 带外许可证 域支持 使用域支持播放加密的内容 许可证预览 提交内容 OpenSourceMediaFramework 第章:在AIR中添加PDF内容 检测PDF功能 加载PDF内容 编写PDF内容的脚本 对AIR中的PDF内容的已知限制 第章:用户交互的基础知识 捕获用户输入 管理焦点 了解输入类型 第章:键盘输入 捕获键盘输入 使用IME类 虚拟键盘 第章:鼠标输入 捕获鼠标输入 鼠标输入示例:WordSearch 第章:触摸、多点触控和手势输入 触摸输入的基础知识 触摸支持发现 Touch事件处理 触摸和拖动 Gesture事件处理 疑难解答 第章:复制和粘贴 复制粘贴基础知识 读取和写入系统剪贴板 AIR中的HTML复制和粘贴 剪贴板数据格式 第章:加速器输入 检查加速计支持 检测加速计更改 第章:AIR中的拖放 AIR中拖放的基础知识 支持拖出手势 支持拖入手势 HTML中的拖放 将数据拖出HTML元素 将数据拖入HTML元素 示例:覆盖默认的HTML拖入行为 在非应用程序HTML沙箱中处理文件放置 放置文件释放 第章:使用菜单 菜单基础知识 创建本机菜单(AIR) 关于HTML中的上下文菜单(AIR) 显示弹出本机菜单(AIR) 处理菜单事件 本机菜单示例:窗口和应用程序菜单(AIR) 第章:AIR中的任务栏图标 关于任务栏图标 停靠栏图标 系统任务栏图标 Window任务栏图标和按钮 第章:使用文件系统 使用FileReference类 使用AIR文件系统API 第章:存储本地数据 共享对象 加密的本地存储区 第章:在AIR中使用本地SQL数据库 关于本地SQL数据库 创建和修改数据库 操作SQL数据库数据 使用同步和异步数据库操作 对SQL数据库使用加密 使用SQL数据库的策略 第章:使用字节数组 读取并写入ByteArray ByteArray示例:读取zip文件 第章:网络和通信基础知识 网络接口 网络连接更改 域名系统(DNS)记录 第章:套接字 TCP套接字 UDP套接字(AIR) IPv地址 第章:HTTP通信 加载外部数据 Web服务请求 在其他应用程序中打开URL 第章:与其他FlashPlayer和AIR实例通信 关于LocalConnection类 在两个应用程序之间发送消息 连接到不同域中的内容和AIR应用程序 第章:与AIR中的本机进程通信 本机进程通信概述 启动和关闭本机进程 与本机进程通信 本机进程通信的安全性注意事项 第章:使用外部API 使用外部API的基础知识 外部API要求和优点 使用ExternalInterface类 外部API示例:在ActionScript和Web浏览器中的JavaScript之间进行通信 第章:AIR中的XML签名验证 XML签名验证的基础知识 关于XML签名 实现IURIDereferencer接口 第章:客户端系统环境 客户端系统环境基础知识 使用System类 使用Capabilities类 功能示例:检测系统功能 第章:AIR应用程序的调用和终止 应用程序调用 捕获命令行参数 用户登录时调用AIR应用程序 从浏览器调用AIR应用程序 应用程序终止 第章:处理AIR运行时和操作系统信息 管理文件关联 获取运行时版本和修补级别 检测AIR功能 跟踪用户当前状态 第章:使用AIR本机窗口 AIR中的本机窗口的基础知识 创建窗口 管理窗口 侦听窗口事件 显示全屏窗口 第章:AIR中的显示屏幕 AIR中的显示屏幕的基础知识 枚举屏幕 第章:打印 打印基础知识 打印页面 Flash运行时任务和系统打印 设置大小、缩放和方向 高级打印技术 打印示例:多页面打印 打印示例:缩放、裁剪和响应 打印示例:页面设置和打印选项 第章:Geolocation 检测geolocation更改 第章:应用程序国际化 应用程序国际化基础知识 flashglobalization包概述 确定区域设置 设置数字格式 设置货币值格式 设置日期和时间格式 排序和比较字符串 大小写转换 示例:国际化股票报价应用程序 第章:本地化应用程序 选择区域设置 本地化Flex内容 本地化Flash内容 本地化AIR应用程序 对日期、时间和货币进行本地化 第章:关于HTML环境 HTML环境概述 AIR和WebKit 第章:在AIR中进行HTML和JavaScript编程 关于HTMLLoader类 避免与安全相关的JavaScript错误 通过JavaScript访问AIRAPI类 关于AIR中的URL 使ActionScript对象可用于JavaScript 从ActionScript访问HTMLDOM和JavaScript对象 在HTML中嵌入SWF内容 在HTML页中使用ActionScript库 转换Date和RegExp对象 从ActionScript操作HTML样式表 跨脚本访问不同安全沙箱中的内容 第章:为AIRHTML容器编写脚本 HTMLLoader对象的显示属性 滚动HTML内容 访问HTML历史记录列表 设置在加载HTML内容时使用的用户代理 设置用于HTML内容的字符编码 为HTML内容定义类似于浏览器的用户界面 创建HTMLLoader类的子类 第章:处理AIR中与HTML相关的事件 HTMLLoader事件 使用ActionScript处理DOM事件 响应未捕获的JavaScript异常 使用JavaScript处理运行时事件 第章:在移动应用程序中显示HTML内容 StageWebView对象 内容 导航事件 历史记录 焦点 位图捕获 第章:安全性 FlashPlatform安全概述 安全沙箱 权限控制 限制网络API 全屏模式安全性 加载内容 跨脚本访问 作为数据访问加载的媒体 加载数据 从导入到安全域的SWF文件加载嵌入内容 使用旧内容 设置LocalConnection权限 控制外出URL访问 共享对象 摄像头、麦克风、剪贴板、鼠标和键盘访问 AIR安全性 第章:如何使用ActionScript示例 示例类型 在FlashProfessional中运行ActionScript示例 在FlashBuilder中运行ActionScript示例 在移动设备上运行ActionScript示例 第章:本地数据库中的SQL支持 支持的SQL语法 数据类型支持 第章:SQL错误详细消息、ID和参数 第章:Adobe图形汇编语言(AGAL) AGAL字节码格式
Unity提供了UDP协议进行数据传输,这种方式可以在两台计算机之间进行通信。UDP协议是一种简单的数据传输协议,它不像TCP协议那样要求建立连接和维护状态,因此传输速度更快,但也意味着数据的可靠性和完整性不如TCP协议。 在Unity中使用UDP协议进行通信,需要首先在两台电脑上启动一个监听服务端和一个发送客户端。服务端监听指定的端口,并接收来自客户端发来的消息。客户端需要首先连接服务端,然后将需要发送的数据发送给服务端。 在Unity中,可以使用Network类库或者自己编写UDP协议的传输代码。使用Network类库,可以很方便地实现UDP协议的通信,只需要定义一个NetworkServer和NetworkClient变量,然后调用它们的方法即可。使用自己编写代码的方式,需要创建UDP协议的Socket对象,并设置端口和IP地址,然后使用Send和Receive方法进行数据传输。 在进行UDP协议的通信时,需要注意数据包的大小和数据的格式,尽量保证数据包大小适中,并使用固定的格式进行数据的编码和解码。同时,也需要考虑不同操作系统之间的差异,例如Windows和Linux之间的字节序不同,需要进行转换才能正确传输数据。 总体来说,Unity中UDP协议的通信是一种快速、高效且简单的方式,可以用于实现实时协作、多人游戏等场景。但也需要注意数据的可靠性和安全性,尽量避免出现数据丢失或被篡改的情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值