Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Unity在崩溃后未能使用端口_C#_Client Server_Unity3d_Rpc - Fatal编程技术网

C# Unity在崩溃后未能使用端口

C# Unity在崩溃后未能使用端口,c#,client-server,unity3d,rpc,C#,Client Server,Unity3d,Rpc,我目前正在unity做一个项目。该项目由服务器和客户端应用程序组成。然而,当测试整个服务器-客户机的时候,有时整个东西会崩溃,因为代码中的错误或其他原因 但是,在服务器崩溃或无法连接到某个地方一次之后,我可以强制关闭它(unity拒绝自己退出,因此我终止了进程),然后重试。问题是unity在重新启动后无法启动服务器端,它只是说端口已经在使用中。它会一直这样说,直到我重新启动我的电脑 我知道服务器崩溃是我的错,但是如果你在每次小的失败测试后都要重新启动电脑,那么测试导致服务器崩溃的原因就是一团糟。

我目前正在unity做一个项目。该项目由服务器和客户端应用程序组成。然而,当测试整个服务器-客户机的时候,有时整个东西会崩溃,因为代码中的错误或其他原因

但是,在服务器崩溃或无法连接到某个地方一次之后,我可以强制关闭它(unity拒绝自己退出,因此我终止了进程),然后重试。问题是unity在重新启动后无法启动服务器端,它只是说端口已经在使用中。它会一直这样说,直到我重新启动我的电脑

我知道服务器崩溃是我的错,但是如果你在每次小的失败测试后都要重新启动电脑,那么测试导致服务器崩溃的原因就是一团糟。有什么已知的原因使程序会像那样占用端口吗?如果服务器崩溃,我在编辑器中将其关闭,它会简单地告诉我它“成功断开”,但我认为问题仍然在于断开部分,它应该释放端口,但不是。正常程序是如何进行这一过程的

提前感谢,,
Smiley

一个解决方案而非解决方案是动态更改/增加所选端口--调试侦听端口10000、10001、10002、10003等。您仍然应该解决端口仍然打开的根本问题,但是,这样的技术可能有助于加快速度。如果我能让它告诉客户端我们这次运行的端口,那就更好了。有没有一种方法可以让客户端像这样运行:在X和Y之间的端口上搜索服务器?在不等待连接的情况下,尝试超时它尝试连接的每个端口?(我知道多线程的一些方法,但我宁愿远离unity内部,它是一种彻头彻尾的恐怖类型)我的第一个想法是一个用户输入对话框,但如果你还没有这样的对话框,那就太麻烦了。除了反复试验之外,我不知道还有什么办法——即使是nmap也是如此。你能不能缩短超时时间?如果这真的不容易,不用麻烦了:这不值得浪费时间,因为它会分散解决实际问题的注意力。我可以研究一下,我需要客户端输入,无论如何,我可以构建它,然后滥用它进行调试。到现在为止,一直都还不错。但我仍然为团结的崩溃而烦恼,只是没有给出一个完整的理由。我想我会把所有的东西都剥掉,然后再加上一些东西,直到我发现是什么导致了这种恼人的情况。