当前位置: 首页 > 知识库问答 >
问题:

服务器和客户端之间的多个套接字

谢夜洛
2023-03-14

我有一个java服务器应用程序,可以通过SocketChannel与多个客户端通信。在这个通道上,客户端发送请求,服务器发送应答。现在我想添加一个功能,服务器可以将文件发送到客户端。我不想通过用于通信的套接字发送,所以在一个客户端和一个服务器之间使用更多套接字是个好主意吗?如果是,如何处理?我用过这样的东西吗?

SocketChannel socket = serverSocket.accept()
if(!addressSet.contains(socket.address)) {
    it is comunicate socket
}
else {
    it is date transfer socket
}

还是有更好的办法?

共有2个答案

子车飞鹏
2023-03-14

是的,有更好的方法。使用ServerSocketChannel和方法公共抽象SocketChannel接受()抛出IOException

段干兴业
2023-03-14

接受客户端连接后,在随机端口上创建一个新的ServerSocket,然后告诉他端口号。然后,他应该将其连接为数据连接。然后,让服务器接受来自它的一个连接,最好是来自他,然后关闭该服务器套接字。它不是万无一失的,但它相当坚固。

 类似资料:
  • 我试图用java实现一个客户端服务器,在这里我读取客户端中的输入并在服务器中执行UperCase,然后返回客户端并打印UperCase。我使用ObjectOutputStream和ObjectInputStream进行读写,但是当我在客户机中键入一个msg时,程序会显示以下错误: Digite uma msg casa java.io.eofexception位于java.io.datainput

  • 如何处理多个客户端连接到一个服务器?我有这个logserver.java 和一个嵌入式applet,其中包含如下所示的部分代码,例如 现在的问题是,如果我在服务器上运行“Java日志服务器”,它将打开应用程序并等待输入流,如果我打开我的站点,它将开始流日志。但如果我使用其他计算机/网络再打开一个站点,第二个站点不会记录流。似乎是因为第一个仍然绑定到端口5000。 我该怎么处理?socket实际上是

  • 我有以下情况, TCP服务器将接受来自客户端的连接 客户端将发送第一个请求,服务器将响应该请求,服务器必须在同一套接字上等待接收来自同一客户端的下一个请求 请参阅我所做的代码,使用此代码,服务器无法接收服务器发送的第二个请求,而客户端也在第二个接收中接收来自服务器的第一个响应。 请对此提出建议,代码中的问题是什么。 我试着模拟这个案例,如果有人以前遇到过,请尽快建议。

  • 我对套接字有点陌生,我正在尝试编写一个程序,在这个程序中,我基本上可以从客户端程序向服务器程序发送一些简单的请求。现在我只想在客户端有1或2个选项供用户选择。例如,如果用户在客户端选择“选项1”,那么服务器会返回一条消息“您选择选项1”,以此类推,但我不知道如何读取服务器上从客户端发送的输入。 客户代码: 服务器代码: 我需要在Clinet中使用两个不同的BufferedReader吗?一个用于用

  • 正在编写一个服务器,使用Java套接字的客户端聊天程序。这是我的服务器套接字类的代码。 客户端能够建立连接并向服务器发送消息。服务器也可以接收客户端发送的消息。问题是当消息从服务器发送时,客户端没有收到消息。这是我的客户端套接字代码。

  • 我刚刚开始使用Sockets,对于我当前的项目,我需要能够从客户端控制我的程序,但是如果我的项目合作伙伴想同时使用他的客户端,服务器不会向他发送“您已连接”消息,如连接类所示。所以我假设服务器不同时接受多个客户端。我尝试过使用类Connection的Thread,但这也不会向第二个客户端发送消息“您已连接”。我在这里做错了什么? 这是我用来同时连接多个用户的线程: 编辑:附加信息 在第一个客户端连