unity使用TCP通信的客户端具体代码
时间: 2023-10-30 16:07:26 浏览: 163
以下是一个简单的Unity客户端TCP通信代码示例:
```csharp
using UnityEngine;
using System.Net.Sockets;
using System.Text;
public class TCPClient : MonoBehaviour {
private TcpClient client;
private NetworkStream stream;
private byte[] buffer = new byte[1024];
// 连接服务器
public void Connect(string ip, int port) {
client = new TcpClient();
client.BeginConnect(ip, port, ConnectCallback, null);
}
// 连接回调函数
private void ConnectCallback(IAsyncResult ar) {
client.EndConnect(ar);
stream = client.GetStream();
stream.BeginRead(buffer, 0, buffer.Length, ReceiveCallback, null);
}
// 发送消息
public void Send(string message) {
byte[] data = Encoding.UTF8.GetBytes(message);
stream.Write(data, 0, data.Length);
}
// 接收消息回调函数
private void ReceiveCallback(IAsyncResult ar) {
int bytesRead = stream.EndRead(ar);
string message = Encoding.UTF8.GetString(buffer, 0, bytesRead);
Debug.Log("Received message: " + message);
stream.BeginRead(buffer, 0, buffer.Length, ReceiveCallback, null);
}
// 断开连接
public void Disconnect() {
if (client != null) {
client.Close();
}
}
}
```
使用方法:
1. 在Unity中创建一个空GameObject,将此脚本附加到该GameObject上。
2. 在代码中调用`Connect`函数连接服务器,传入服务器的IP地址和端口号。
3. 调用`Send`函数发送消息。
4. 当接收到消息时,`ReceiveCallback`函数会被调用,并在控制台输出收到的消息。
5. 调用`Disconnect`函数断开与服务器的连接。
阅读全文