【发布时间】:2018-11-21 17:38:07
【问题描述】:
我在 C# 中创建了一个 Windows 服务服务器程序,它将从串行端口接收数据消息,然后将这些消息发送到已连接到服务器的任何客户端。我还用c#开发了客户端程序(windows窗体)。
服务器程序最初是作为控制台应用程序开发的,以便于开发。在将服务器作为控制台应用程序运行时,与客户端的连接运行良好,我可以在与服务器相同的 PC 上运行客户端,也可以在连接到同一网络的笔记本电脑上连接客户端。
连接方式为: -客户端启动 -client 向特定端口广播 (udp) -server 响应 UDP 广播 -client 使用从 UDP 响应中获得的 IP 地址发起与服务器的 TCP 连接
由于将服务器从控制台应用程序更改为 Windows 服务,我无法再使用此方法将笔记本电脑上运行的客户端程序连接到服务器。与服务器在同一台机器上运行的客户端程序连接成功。谁能提供一些关于调查什么的建议?
【问题讨论】:
-
将应用程序作为服务运行在特定帐户下,该帐户可能具有或不具有与 Windows 登录相同的凭据。您必须确保以相同的用户登录身份运行。这可以在 Windows 本身的 Windows 服务控制面板中进行更改。另一方面,我不知道你是否知道,但如果不能保证 UDP 可以从客户端传输到服务器,它也不会按照发送的顺序接收字节。