unity 长连接
时间: 2023-07-08 08:08:42 浏览: 57
Unity 中可以使用 C# Socket 类来创建长连接。以下是一个简单的示例代码:
```csharp
using System.Net.Sockets;
using System.Threading;
public class SocketClient : MonoBehaviour {
private Socket socket;
private Thread receiveThread;
private byte[] receiveBuffer = new byte[1024];
void Start() {
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Connect("127.0.0.1", 8888); // 连接到服务器
receiveThread = new Thread(new ThreadStart(ReceiveData));
receiveThread.Start(); // 启动接收线程
}
void Update() {
// 发送数据给服务器
byte[] sendBuffer = System.Text.Encoding.UTF8.GetBytes("Hello");
socket.Send(sendBuffer);
}
void ReceiveData() {
while (true) {
int length = socket.Receive(receiveBuffer); // 接收数据
string message = System.Text.Encoding.UTF8.GetString(receiveBuffer, 0, length);
Debug.Log("Received: " + message);
}
}
void OnDestroy() {
receiveThread.Abort(); // 停止接收线程
socket.Close(); // 关闭连接
}
}
```
在上述代码中,我们使用 Socket 类创建一个 TCP 连接,并启动一个接收线程来监听服务器发送的数据。在 Update 函数中,我们可以发送数据给服务器。在 OnDestroy 函数中,我们停止接收线程并关闭连接。
需要注意的是,长连接可能会导致资源占用过多,因此需要根据实际需求进行优化和管理。