Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.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# 某些Windows 7安装未在UdpClient.Close()上释放UDP套接字?_C#_Windows_Sockets_Udp - Fatal编程技术网

C# 某些Windows 7安装未在UdpClient.Close()上释放UDP套接字?

C# 某些Windows 7安装未在UdpClient.Close()上释放UDP套接字?,c#,windows,sockets,udp,C#,Windows,Sockets,Udp,我和一位同事在相同的硬件上有相同的代码,运行几乎相同的Windows7安装。我们都在使用Unity3d内部的C#,以及软件包的最新SVN签出。TUIO是一种基于开放式声音控制的UDP协议,用于发送有关触摸屏交互的数据。在我的机器上,应用程序在我第一次运行时工作正常(尽管启动时有奇怪的~5秒延迟),但在随后启动应用程序时,它会抛出以下异常: SocketException: Only one usage of each socket address (protocol/network addres

我和一位同事在相同的硬件上有相同的代码,运行几乎相同的Windows7安装。我们都在使用Unity3d内部的C#,以及软件包的最新SVN签出。TUIO是一种基于开放式声音控制的UDP协议,用于发送有关触摸屏交互的数据。在我的机器上,应用程序在我第一次运行时工作正常(尽管启动时有奇怪的~5秒延迟),但在随后启动应用程序时,它会抛出以下异常:

SocketException: Only one usage of each socket address (protocol/network address/port) is normally permitted.

System.Net.Sockets.Socket.Bind (System.Net.EndPoint local_end)
System.Net.Sockets.UdpClient.InitSocket (System.Net.EndPoint localEP)
System.Net.Sockets.UdpClient..ctor (System.Net.IPEndPoint localEP)
Tuio.TuioTracking.Start () (at Assets/Plugins/MindstormTuio/Scripts/TuioReceiver/TuioTracking.cs:70)
UnityEngine.Debug:LogException(Exception)
对我的同事来说,启动时没有奇怪的延迟,应用程序可以根据需要多次重新启动,不会产生不良影响

如果我在我的机器上运行
netstat-a-n-o
,我会看到UDP连接--
UDP 0.0.0.0:3333*:*6088
--即使在应用程序和Unity editor退出后仍然打开。我通过在第一次运行应用程序时运行
tasklist/F“PID EQ 6088”
确定PID(在本例中为6088)为Unity.exe(Unity编辑器)。看起来第一次执行应用程序时,Unity.exe会抓住端口3333,不会释放它。即使在退出Unity编辑器后,
UDP 0.0.0:3333*:*6088
条目也会出现在netstat中

这似乎是一个特定于我的开发人员机器的配置问题,因为我同事的机器没有显示它

你知道什么配置问题会导致这个问题吗?

我不太清楚为什么会出现这个问题,但在Task Manager中,我注意到,在我第一次启动Unity应用程序时,Android调试桥接器
adb.exe正在运行。在我停止播放或退出Unity后,它不会关闭——如果我强制退出adb.exe,端口将被释放,并且在应用程序的后续运行期间,adb将不再启动。当我开始在Unity中玩我的应用程序(它不是Android版本)时,我不知道为什么要启动ADB,所以我很困惑。如果有人知道为什么这会解决问题,请告诉我