我已经设置好了,所以我的统一应用程序可以接收tcp数据。但是,当我运行该项目时,整个应用程序将冻结,并且在收到消息之前不会执行任何操作。然后,一旦接收到消息,它将打印出该消息,并且不会让我的客户端再次连接到它。接收TCP连接问题
此代码是我的TCP阅读类的整体,是否有什么愚蠢的我在这里做这是造成这种?
有没有更好的方式来读取TCP数据?
using UnityEngine;
using System.Collections;
using System.Net.Sockets;
using System.Net;
using System.Text;
using System;
using System.IO;
public class TCPConnection: MonoBehaviour
{
public string ip_address = "";
public int port_number = 0;
void Start()
{
try
{
IPAddress ipAddress = IPAddress.Parse(ip_address);
TcpListener listener = new TcpListener(ipAddress, port_number);
listener.Start();
print("The server is running at port " + port_number);
print("The local end point is :" + listener.LocalEndpoint);
print("Waiting for connection.....");
Socket socket = listener.AcceptSocket();
print("Connection accepted from " + socket.RemoteEndPoint);
byte[] b = new byte[100];
int k = socket.Receive(b);
print("recieved...");
for (int i = 0; i < k; i++)
print (Convert.ToChar(b[i]));
ASCIIEncoding ascii = new ASCIIEncoding();
socket.Send(ascii.GetBytes("The string was recieved by the server"));
print("\nSent ack");
}
catch (Exception e)
{
print("error...." + e.Message);
}
}
}
请问您可以举一个例子说明如何修改我的代码,请告诉您的建议? – N0xus