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

时间:2013-07-22 22:47:25

标签: c# tcp p2p

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

- - - - 修改

我需要添加侦听器在一个线程上,而客户端在另一个线程上

2 个答案:

答案 0 :(得分:1)

不,这不是问题。每个客户端都需要能够在P2P程序中充当服务器和客户端,因此您采用了正确的方式。

编辑:是的,侦听器和客户端在不同的线程上是正常的。

EDIT2:This question and its answers可能值得一读。

答案 1 :(得分:0)

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