我想在同一台PC上运行的两个应用程序之间实现套接字通信。其中一个是Unity应用程序(服务器)。所以我写了以下内容:
public class Main : MonoBehaviour {
// Use this for initialization
void Start () {
// Set the TcpListener on port 13000.
Int32 port = 8800;
IPAddress localAddr = IPAddress.Parse("192.168.1.1");
// TcpListener server = new TcpListener(port);
TcpListener server = new TcpListener(localAddr,port);
Socket socketForClient;
try
{
server.Start();
socketForClient = server.AcceptSocket();
if (socketForClient.Connected)
{
print("connected");
}
else
{
print("not connected");
}
}
catch (Exception e)
{
print(e.Message);
}
}
// Update is called once per frame
void Update () {
}
}
当我开始游戏时,我得到以下结果:The requested address is not valid in its context.
例外。有帮助吗?如果我希望服务器客户端在同一台PC上运行,我应该使用哪个IP /端口?
答案 0 :(得分:1)
您可以在0.0.0.0
上收听所有接口,包括环回和外部接口。
但如果您知道它是同一台机器,请使用127.0.0.1
,因为它始终指向自身。
答案 1 :(得分:1)
根据IPAddress Fields,您可以使用IPAddress.Loopback
作为本地环回接口。如果要在任何界面上建立连接,可以使用IPAddress.Any
。
在您的解决方案中,如果本地IP地址发生更改并且不再是192.168.1.1,则可能会出现问题 - 因此您应该使用框架提供的一种可能性(如Loopback或Any)。