C# Messenger默认关闭的端口

C# Messenger默认关闭的端口,c#,sockets,C#,Sockets,我用c#编写了带有套接字的messenger,但在端口方面没有什么问题。要清除通信,我必须打开路由器上的端口,我在messenger中使用该端口。如何解决这个问题?是自动打开默认关闭端口的方法吗 谢谢。你可以做几件事 第一个是更改应用程序的编程,以便它使用常规http端口(80)进行通信。这将允许你的应用程序在几乎任何地方进行出站呼叫 或者,您可以使用从49152到65535的高端口号。(见附件) 但是,根据您部署应用程序的位置,很可能所有这些端口都通过防火墙被阻止;而且两者都不能解决您的问题

我用c#编写了带有套接字的messenger,但在端口方面没有什么问题。要清除通信,我必须打开路由器上的端口,我在messenger中使用该端口。如何解决这个问题?是自动打开默认关闭端口的方法吗


谢谢。

你可以做几件事

第一个是更改应用程序的编程,以便它使用常规http端口(80)进行通信。这将允许你的应用程序在几乎任何地方进行出站呼叫

或者,您可以使用从49152到65535的高端口号。(见附件)


但是,根据您部署应用程序的位置,很可能所有这些端口都通过防火墙被阻止;而且两者都不能解决您的问题

由于防火墙问题,大多数messenger类型的应用程序无法直接运行。例如,即使您使用端口80,客户端计算机也可能会为传入的TCP请求阻止该端口

相反,它们通常连接到已知的公共服务器。当一个客户端希望连接到另一个客户端时,服务器将在两个客户端之间路由消息。一种非常简单的方法是:客户端A向服务器发送客户端B的通信请求。客户端B轮询服务器以获取消息,看到消息并在桌面上显示

有一些方法可以保持客户端和服务器之间的TCP连接处于活动状态,以加快通信速度;但这是最基本的


当客户机确定某些端口已开放用于通信或代理服务器不会干扰通信时,甚至可以通过多种方式直接相互通信。然而,这比这里简单的“答案”要高级一点。

您可以做一些事情

第一个是更改应用程序的编程,以便它使用常规http端口(80)进行通信。这将允许你的应用程序在几乎任何地方进行出站呼叫

或者,您可以使用从49152到65535的高端口号。(见附件)


但是,根据您部署应用程序的位置,很可能所有这些端口都通过防火墙被阻止;而且两者都不能解决您的问题

由于防火墙问题,大多数messenger类型的应用程序无法直接运行。例如,即使您使用端口80,客户端计算机也可能会为传入的TCP请求阻止该端口

相反,它们通常连接到已知的公共服务器。当一个客户端希望连接到另一个客户端时,服务器将在两个客户端之间路由消息。一种非常简单的方法是:客户端A向服务器发送客户端B的通信请求。客户端B轮询服务器以获取消息,看到消息并在桌面上显示

有一些方法可以保持客户端和服务器之间的TCP连接处于活动状态,以加快通信速度;但这是最基本的

当客户机确定某些端口已开放用于通信或代理服务器不会干扰通信时,甚至可以通过多种方式直接相互通信。然而,这比这里一个简单的“答案”要高级一点