用c#中的Tcp协议创建p2p聊天



我使用tcp协议进行了一次p2p聊天,每个用户都运行一个服务器(让TcpListner侦听)。这是个问题吗?

-----编辑

我需要补充的是,监听器在一个线程上,客户端在另一个上

不,这不是问题。在P2P程序中,每个客户端都需要同时充当服务器和客户端的能力,所以您选择了正确的方式。

EDIT:是的,侦听器和客户端在不同的线程上是可以的。

第二版:这个问题及其答案可能值得一读。

在另一个线程上运行好侦听器并在另一线程上进行编写是可以的,或者您可以使用异步侦听器。实际的问题是,除非你使用了TCP打孔技术,否则聊天应用程序无法在局域网外工作。我希望你知道你在做什么。为了获得更多信息,我可以在这里加上一些事实。如果您计划在局域网外使用该应用程序,则需要通过公共IP进行通信。如果你的公共IP不是静态的,那么你的请求将被NAT阻止。为了克服这个问题,你需要使用TCP/UDP打孔来打破NAT。只要在谷歌上搜索,你就会得到更多关于这方面的教程。如果没有一个不适合你,请告诉我。

最新更新