Microsoft.Xna.Framework.Net.dll 是 XNA Framework 中专门承载网络通信的程序集。它在底层 Socket 之上构建了一套面向游戏会话的高层抽象,让开发者不必直接处理握手、字节序、序列化与主机发现等细节,而只需围绕会话与玩家对象编写逻辑。
该程序集提供 NetworkSession 对象的创建、查找、加入与销毁流程,支持 SystemLink 与 Live 两类运行环境。通过 Find、Create、Join、JoinInvited 等静态方法完成匹配过程;SessionProperties、AllowJoinInProgress、MaxGamers 等属性控制会话可见性与容纳上限。会话结束后仍可保留对象用于返回大厅,这一设计对多回合游戏尤为关键。
NetworkGamer、LocalNetworkGamer、NetworkMachine 共同构成参与者模型:前两者区分本机玩家与远程玩家,携带 Gamertag、IsHost、IsGuest、IsReady 等状态;NetworkMachine 则映射到真实主机,其 Connections 集合描述网状或星型拓扑,是判断链路质量的基础。
PacketReader 与 PacketWriter 以流式方式写入或读取基元类型、字符串、向量以及可序列化对象,对字节序与长度前缀做了统一约定。发送时通过 SendDataOptions 选择 Reliable、InOrder、NoDelay、ReliableInOrder 等语义,开发者据此在低延迟与丢包重传之间做出权衡,例如位置同步常用 NoDelay,而关键指令使用 ReliableInOrder。
GamerJoined、GamerLeft、GameStarted、GameEnded、HostChanged、SessionEnded 等事件将业务逻辑与网络状态解耦;配套的 Update 需在游戏循环中周期调用,以驱动内部状态机、心跳与超时检测。
网络层可直接以 SignedInGamer 作为本地身份来源,结合 GamerServices 提供的玩家图片、邀请与语音支持,形成完整的联机体验链路。