客户端服务器(服务)应用程序在本地连接但不通过网络连接

时间:2018-06-12 10:40:25

标签: c# tcp server udp client

我在c#中创建了一个Windows服务服务器程序,它将从串行端口接收数据消息,然后将这些消息发送到已连接到服务器的任何客户端。我还在c#中开发了客户端程序(windows窗体)。

最初,服务器程序是作为控制台应用程序开发的,以便于开发。在将服务器作为控制台应用程序运行时,与客户端的连接运行良好,我可以在与服务器相同的PC上运行客户端,也可以连接到连接到同一网络的笔记本电脑上的客户端。

连接方法是: 客户端启动 -client广播(udp)到特定端口 -server响应UDP广播 -client使用从UDP响应中获取的IP地址启动与服务器的TCP连接

由于将服务器从控制台应用程序更改为Windows服务,因此无法再使用此方法将笔记本电脑上运行的客户端程序连接到服务器。与服务器在同一台计算机上运行的客户端程序成功连接。任何人都可以就调查内容提出一些建议吗?

1 个答案:

答案 0 :(得分:1)

要解决该问题,我在运行服务器服务应用程序的计算机的防火墙设置中添加了一条新规则。我允许将端口用于传入连接,这为我解决了问题。

我还更改了网络发现过程:

  1. 服务器每秒向端口(UDP)广播
  2. 客户端正在等待来自服务器的广播数据包
  3. 客户端使用从广播数据包获得的IP地址与服务器建立TCP连接