我使用tcp协议进行了p2p聊天,其中每个用户都运行一个服务器(有一个TcpListner监听)。这是一个问题吗?
- - - - 修改
我需要添加侦听器在一个线程上,而客户端在另一个线程上
答案 0 :(得分:1)
不,这不是问题。每个客户端都需要能够在P2P程序中充当服务器和客户端,因此您采用了正确的方式。
编辑:是的,侦听器和客户端在不同的线程上是正常的。
EDIT2:This question and its answers可能值得一读。
答案 1 :(得分:0)
在另一个线程上运行侦听器并在另一个线程上写入很好,或者您可以使用异步侦听器。那么实际的问题是,除非你使用TCP打孔技术,聊天应用程序不能在局域网外工作。我希望你知道你在做什么。只是为了获得更多信息,我可以在这里添加一些事实。 如果您计划在局域网外使用该应用程序,则需要通过公共IP进行通信。如果您的公共IP不是静态的,那么您的请求将被NAT阻止。为了解决这个问题,您需要使用TCP / UDP打孔来打破NAT。只需在谷歌搜索,您将获得更多关于此的教程。如果他们都不适合你,请告诉我。