0

我需要开发一个不使用 JXTA 之类的框架的 p2p 应用程序。我在 StackOverflow 中搜索了各种主题,但没有得到我想要的。我有一个维护客户端列表及其资源的服务器。客户端将联系服务器以找出哪个客户端拥有什么。客户端从服务器获取此信息后,将与其他客户端建立 p2p 连接——服务器不参与此操作。

我需要知道如何在同一个程序中创建客户端套接字和服务器套接字,即程序应该像服务器和客户端一样。请帮帮我。

for ex:
 client code 
 Socket clientSocket = new Socket("localhost", 10000);

 server code
 ServerSocket welcomeSocket = new ServerSocket(10000);

     while(true)
     {
        //client socket
        Socket connectionSocket = welcomeSocket.accept();
        .......
        .......
     }

如何将 serversocket 添加到我的客户端并使其像服务器一样工作?我知道我必须使用线程,但是谁能详细解释一下?或者请发布相关主题。我厌倦了浏览各种论坛和网站。

4

1 回答 1

1

实际上有很多方法可以编写与线程和 IO 相关的网络代码(参见http://www.kegel.com/c10k.html)。我猜传统的方式是创建一个线程来处理每个连接,在Java 教程的底部有解释。这很好,如果连接建立,做某事,然后关闭。

但是,如果您一直保持连接打开,您最终可能会创建过多的线程和开销。因此,其他方法。

此外,您应该考虑使用一些通用的 java 网络库。您可以实现自己的协议和通信模型,但仍然可以节省一些精力,并且最终可能会得到更好的代码。

于 2012-09-18T07:28:58.307 回答