首页 > 解决方案 > TcpListener 端口:在不同的端口上创建套接字

问题描述

我基本上正在执行以下代码:

int port = 5555; //just an example
IPEndPoint ep = new IPEndPoint(IPAddress.Any,port);
var l = new TcpListener(ep);
l.Start();
l.BeginAccept(AcceptHandler,l);

它可以工作(当然),但是在一台特定的机器上,服务器套接字在不同的端口上打开!总是 !

此外,我可以多次使用相同的端口运行上述内容:我每次都得到一个不同的端口。

这些机器是 Windows 2016 Citrix 机器;防火墙由赛门铁克处理。我没有足够的访问权限来获取更多详细信息。

我相信上述行为来自一些安全软件 - 它有点整洁,但在我的情况下非常烦人。请注意,我可以找出我实际获得的端口,但查询:

int actualPort = ((IPEndPoint)listener.Server.LocalEndPoint).Port;

我联系了管理机器的 IT 团队,他们说这是正常的,因为它是一个“多用户”系统,我应该在维基百科上阅读有关临时端口的信息......基本上我应该使用临时端口?

这对我来说听起来像是很多废话。无论如何,无论我要求什么,我都会得到不同的东西......

我做winsock编程已经有一段时间了。这对我来说是一种全新的体验。

据了解,我一直认为,在为特定端口打开服务器套接字时,您会得到您所要求的(或失败)。

有人经历过上述情况吗?任何指向某些 Windows 安全设置或其他执行此操作的软件的指针?

谢谢 !

标签: socketsporttcplistener

解决方案


推荐阅读