Unity----Socket使用①

本文介绍了在Unity中使用Socket进行服务器通信的基本步骤,包括创建Socket对象、绑定端口、监听连接、处理客户端消息及剔除断开连接的客户端。详细讲解了Socket的初始化、IPEndPoint的使用以及如何处理客户端的收发消息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用Socket的Demo
分析:
聊天室:
①客户端:UI界面、网络收发I/O
②服务器端:
网络收发I/O:
创建Socket对象->将Socket对象和电脑的应用进行一个绑定->等待连接,连接成功就建立交流的通道
(1)创建Socket对象

Socket tcpServer = new Socket();

进行初始化的构造函数的重载有三个:
在这里插入图片描述

只有一个参数,参数类型为SocketInformation
查看SocketInformation这个东西,转到定义的地方

namespace System.Net.Sockets {
   
    //
    // 摘要:
    //     是复制所需的信息进行封装 System.Net.Sockets.Socket。
    public struct SocketInformation {
   
        //
        // 摘要:
        //     获取或设置的协议信息 System.Net.Sockets.Socket。
        //
        // 返回结果:
        //     System.Byte 类型的数组。
        public byte[] ProtocolInformation
        {
   
            get;
            set;
        }
        //
        // 摘要:
        //     获取或设置的选项 System.Net.Sockets.Socket。
        //
        // 返回结果:
        //     一个 System.Net.Sockets.SocketInformationOptions 实例。
        public SocketInformationOptions Options
        {
   
            get;
            set;
        }
    }
}

SocketInformation为一个结构体,并只含有两个属性
类型为byte[] ProtocolInformation用于获取或设置协议信息
类型为SocketInformationOptions Options,跳转到SocketInformations(套接字信息选项)的定义为枚举类型,用来标记Socket的状态:
值有:NonBlocking=1, socket 被阻止
Connected=2, socket连接
Listening=4, 侦听新连接
UseOnlyOverlappedIO=8,使用重叠的I/O

在这里插入图片描述

SocketType,也为枚举类型,总共有五个值
Unknown=-1,指定未知Socket类型
Stream=1,支持可靠、双向、基于连接的字节流
Dgram=2,数据报形式,固定的最大值
Raw=3,支持访问基础传输协议
Rdm=4,支持无连接,面向消息的、可靠地发送的消息
Seqpacket,排序的字节流的面向连接和可靠的双向传输
在这里插入图片描述

AddressFamily ,枚举值,用来表示我这个Socket即将要连接到那种IP地址

namespace System.Net.Sockets {
   
    //
    // 摘要:
    //     指定的寻址方案的一个实例 System.Net.Sockets.Socket 类可以使用。
    public enum AddressFamily {
   
        //
        // 摘要:
        //     未知的地址族。
        Unknown = -1,
        //
        // 摘要:
        //     未指定的地址族。
        Unspecified = 0,
        //
        // 摘要:
        //     Unix 本地主机地址。
        Unix = 1,
        //
        // 摘要:
        //     IP 版本 4 地址。
        InterNetwork = 2,
        //
        // 摘要:
        //     当初 ARPANET 导入地址。
        ImpLink = 3,
        //
        // 摘要:
        //     PUP 协议的地址。
        Pup = 4,
        //
        // 摘要:
        //     MIT 混乱不堪的局面协议的地址。
        Chaos = 5,
        //
        // 摘要:
        //     Xerox NS 协议的地址。
        NS = 6,
        //
        // 摘要:
        //     IPX 或 SPX 地址。
        Ipx = 6,
        //
        // 摘要:
        //     对 ISO 协议的地址。
        Iso = 7,
        //
        // 摘要:
        //     OSI 协议的地址。
        Osi = 7
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值