Unity与C++网络游戏开发实战:基于VR、AI与分布式架构 【4.4】

本文详细介绍了Unity与C++结合进行网络游戏开发中,如何利用Winsocket进行分布式架构的实践。内容包括套接字寻址方式,Winsocket网络程序开发流程,如何在Visual Studio中创建网络工程,以及基于TCP的Socket编程。通过实例演示了从创建套接字、初始化Winsocket、绑定地址端口到监听连接、接收发送数据的完整过程。
摘要由CSDN通过智能技术生成

12.2 套接字寻址方式

        在第12.1节的函数介绍中使用了套接字的函数创建和连接套接字Socket。大家会发现,在套接字的监听和连接创建部分都少不了要传入一个地址参数,这个地址可能是IPv4,也可能是IPv6。操作系统套接字就是通过地址和端口,在互联网上查询地址所在的连接,从而形成一个可信赖的通信管道。本节来了解套接字的寻址方式。
1.字节顺序切换
        在不同的处理器架构下,发送的信息具有不同的字节顺序,如果要实现不同架构机器之间的通信,那么就必须要统一字节的顺序。使用TCP/IP的时候,有如下4种方式可以用来处理字节顺序和网络顺序之间切换不同的变化。

//32 位的主机切换32 位网络
uint32_t htonl(uint32_t hostint32);
//16 位主机切换16 位网络
uint16_t htons(uint16_t hostint16);
//32 位网络切换32 位主机
uint32_t ntohl(uint32_t netint32);
//16 位网络切换16 位主机
uint16_t ntohs(uint16_t netint16);

2.地址格式说明
        地址和通信的作用域相关,所以为了让各种格式的地址(如用域名和端口等表示的地址)都能够传入套接字的参数,那么地址在传入参数前需要统一切换成API能使用的格式sockaddr。在Windows或者Linux系统下都提供了对应的结构体来表示,如下:

struct sockaddr
{
unsigned char sa_len;
sa_family_t sa_family;
char sa_data[14];
}

        另外ÿ

  • 11
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BinaryStarXin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值