Unity的网络通信这块是个坑,还有端口通信。
首先是网络通信,网络通信有Udp协议,Tcp短链接,Tcp长连接等等。搜的话网上一大堆代码。
但是我在使用中遇到了一些问题,发送端没啥好说的,主要是接收端。问题如下:
1.首先是接收端写法,在update里面写和在协程里面写都不行,只有在新开的线程中才可以使用,但是
如果关闭的时候没关闭好线程就会导致程序未响应卡死。
2.udp广播在不同平台上有时候接收不到。
using UnityEngine;
using System.Collections;
//引入库
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
public class UdpServer : MonoBehaviour
{
//接收的字符串
//
public string strRecvData;//接收到的消息
public bool IsNewRecv;//是否接收到新的消息,当接收到消息将其改为false
//以下默认都是私有的成员
Socket socket; //目标socket
EndPoint clientEnd; //客户端
IPEndPoint ipEnd; //侦听端口
string sendStr; //发送的字符串
string recvStr;
byte[] recvData = new byte[1024]; //接收的数据,必须为字节
byte[] sendData = new byte[1024]; //发送的数据,必须为字节
int recvLen; //接收的数据长度
Thread connectThread; //连接线程
string strTextData = "Data:";
//初始化
void I