我正在尝试 Build 点对点聊天程序 . 这个场景要复杂得多,但我会简化它以获得所需部分的帮助 .

作为总结:

A- The Server

  • 有一台服务器等待客户端连接,当客户端连接时,它将一直等到下一个客户端连接 .

  • 当第二个客户端连接到服务器时,服务器将向每个客户端返回另一个客户端的IP和端口,因此两个客户端可以在没有服务器干预的情况下相互通信 .

  • 然后服务器返回1

B- The client

  • 客户端启动与服务器的tcpClient连接 .

  • 等待服务器响应 .

  • 客户端接收包含其他客户端的IP和端口的自定义对象

  • 使用其他客户端的服务器提供的ip:port开始与其他客户端聊天 .

问题是:考虑到客户端计算机上的网络和防火墙安全配置(默认),这是否可行?

客户端可能会在路由器或路由器之后 .

该应用程序将在互联网或本地网络上运行 .

注意:我需要帮助的是,在C#中可以实现应用程序的客户端部分充当服务器并监听端口并接收连接,因为知道端口未在可能的前端路由器上配置;

有替代解决方案吗?主要思想是在服务器步骤2之后使服务器远离图片