如何从不同的计算机上运行TCP套接字应用程序

时间:2014-05-06 08:20:04

标签: c# .net winforms sockets tcpclient

如果有人可以提供帮助,我将不胜感激。

我写了Client/Server Sockets个应用程序。客户端是Windows Forms C# app,服务器是本地运行的C# console应用程序。客户端应用程序有一个登录表单,其中包含生成端口的字段。

当用户登录时,他使用该端口连接到服务器,服务器继续侦听传入连接。

当我测试我的应用程序只是在一台PC上运行几个Visual Studio项目实例时,一切正常。现在,我想在几台PC上测试它,我在这里很困惑。 如果有人能用辛辣的话来解释如何在两台机器上运行我的应用程序,我将不胜感激。

两个用户如何连接到同一台服务器?它应该放在哪里?服务器是否应该为每个用户组分配一个IP和不同的端口?

此外,我的应用程序使用本地安装在一台PC上的SQL Server数据库。因此,应用程序使用具有该PC名称的连接字符串。如果是两台PC,可以在第一台PC上将第二台计算机连接到DB吗?

我很抱歉,如果这听起来很傻:)

非常感谢

1 个答案:

答案 0 :(得分:1)

所以,如果我是正确的,你会想知道以下三件事吗?

Q1。如何在多机环境中测试我的软件。

答:这可能不是Stackoverflow的问题,但在这种情况下我要做的是在Hyper-V中进行一个小型设置,其中几台机器具有不同的操作系统,这些机器都有一个共享文件夹,我可以部署我的代码至。当然,对于更多的扩展测试,您需要获得更多的机器并将可执行文件复制到该机器以测试第一阶段,并且可能为第二阶段的测试编写设置软件,但这取决于您实际执行的测试数量

Q2。如何允许多个用户连接到我的服务?

答:我认为Anthony Horne在评论中对此有很好的答案 - 告诉您的服务侦听端口X以及当客户端尝试连接时在端口Y上打开新的通信实例并询问客户端回电话给那个港口。据我所知,这是解决此类问题的行业标准。

Q3。我的应用程序使用SQL Server数据库,我可以允许客户端远程连接它。

答:是的,你可以。请参阅此Stackoverflow question