Unity的Socket网络编程

1.Socket相关概念

        Socket就是为了向Internet连接请求的机构。支持网络通信的服务器和客户端都必须具备Socket。

(可以理解为:socket就是ip+port封装,作为一个方法供实例调用。在人与人之间打电话时候需要电话机,同理程序与程序之间的交流也需要一部“电话”,这个“电话”就是Socket)

2.两种常见的Socket类型

  1. 流式Socket(STREAM):是一种面向连接的Socket,针对于面向连接的TCP服务应用,安全,但是效率低。
  2. 数据报式Socket ( DATAGRAM ):是一种无连接的Socket,对应于无连接的UDP服务应用,不安全(丢先.顺序混乱,在接收端要分析重排及要求重发),但效率高.

3.在Unity中常用到的Socket方法

  • ------------------------------------相关类------------------------------------------------
  • IPAddress类:包含了一个IP地址
  • IPEndPoint类:包含了一对IP地址和端口号
  • ------------------------------------方法类------------------------------------------------
  • Socket ( ):创建一个Socket
  • Bind( ):绑定一个本地的IP和端口号(IPEndPoint)
  • Listen( ):让Socket侦听传入的连接尝试,并指定侦听队列容量
  • Connect( ):初始化与另一个Socket的连接
  • Accept( ):接收连接并返回一个新的socket
  • Send():输出数据到Socket
  • Receive( ):从Socket中读取数据
  • Close():关闭Socket(销毁连接)

4.注意事项

  1. 至少要定义一个要连接的远程主机的IP和端口号。·
  2. 端口号必须在1和65535之间,最好在1024以后。
  3. 要连接的远程主机必须正在监听指定端口,也就是说你无法随意连接远程主机。
  4. 一个Socket一次只能连接一台主机。
  5. Socket关闭后无法再次使用
  6. 每个Socket对象只能一台远程主机连接.如果你想连接到多台远程主机,你必须创建多个Socket对象。

-如∶
-IPAddress addr = IPAddress.Parse("127.0.01");

- IPEndPoint endp = new IPEndPoint(addr,10001);
服务端先绑定: serverWelcomeSocket.Bind(endp)

客户端再连接: clientSocket.Connect(endp)

 ps:资料摘抄自视频01.Socket编程基础1_哔哩哔哩_bilibili

猜你喜欢

转载自blog.csdn.net/weixin_45348216/article/details/128084313