C# 侦听端口是否已在使用?统一网络错误
我正在尝试网络一个小型的2人联合游戏。这是我第一次尝试社交,所以请随时纠正我做错的任何事情。我正在尝试做一个简单的配对服务,在游戏的主菜单上,玩家可以点击FindMatch按钮。这将执行以下函数C# 侦听端口是否已在使用?统一网络错误,c#,unity5,unity-networking,C#,Unity5,Unity Networking,我正在尝试网络一个小型的2人联合游戏。这是我第一次尝试社交,所以请随时纠正我做错的任何事情。我正在尝试做一个简单的配对服务,在游戏的主菜单上,玩家可以点击FindMatch按钮。这将执行以下函数 private HostData[] hostList; private const string typeName = "UniqueGameName"; private const string gameName = "RoomName"; public void FindMatch() {
private HostData[] hostList;
private const string typeName = "UniqueGameName";
private const string gameName = "RoomName";
public void FindMatch() {
RefreshHostList();
if (hostList != null) {
JoinServer(hostList[0]);
} else {
StartServer();
}
}
下面是在该函数中调用的相应方法
private void RefreshHostList()
{
MasterServer.RequestHostList(typeName);
}
void OnMasterServerEvent(MasterServerEvent msEvent)
{
if (msEvent == MasterServerEvent.HostListReceived)
hostList = MasterServer.PollHostList();
}
private void JoinServer(HostData hostData)
{
Network.Connect(hostData);
}
private void StartServer()
{
Network.InitializeServer(2, 25000, !Network.HavePublicAddress());
MasterServer.RegisterHost(typeName, gameName);
}
这个想法是,当玩家点击FindMatch时,它会刷新主机列表。如果找到主机,它将加入他们的服务器并开始匹配。如果没有,它将启动自己的服务器并等待其他玩家。测试时,单击“查找匹配”的第一个播放机能够启动服务器,但第二个播放机收到错误消息“…侦听端口是否已在使用?”。当我调试并单步执行我的程序时,第二个玩家的主机列表始终为空,即使第一个玩家成功创建并注册了服务器。您是否在同一台机器上同时使用应用程序的两个实例?如果只占用一次网络端口,则无法在同一台计算机的同一端口上初始化服务器
一般来说,我建议您根据自己的需要研究SingalR技术,它使用WebSocket。您是否在同一台机器上同时使用两个应用程序实例?如果只占用一次网络端口,则无法在同一台计算机的同一端口上初始化服务器
一般来说,我建议您根据您的需要研究SingalR技术,它使用websockets。示例-酷,我真的不知道,而且很好奇,网络新手,所以如果我错了,请纠正我,但第二个玩家正在尝试加入第一个玩家服务器,而不是使用相同的端口初始化一个新服务器?示例-酷,我真的不知道,而且很好奇,网络新手,所以如果我错了,请纠正我,但第二个玩家正在尝试加入第一个玩家服务器,而不是初始化一个具有相同端口的新服务器?