【问题标题】:Something to know about socket and multithreading in java关于Java中的套接字和多线程的一些知识
【发布时间】:2012-02-29 05:58:38
【问题描述】:

我想向网关(客户端)上的socket 发送消息,然后等待从网关接收消息。

另一方面,在等待时,我再次从服务器 socket 向作为客户端的网关发送消息,但在 accept()(ServerSocket) 方法上我的连接阻塞。

我想知道这是因为之前的请求正在等待使用inputStream 接收某些东西。我使用threads 来维护它并使用setReuseAddress() 来执行此操作。

我现在没有发布代码,因为我只是想知道这个逻辑是否正常,或者是否有任何逻辑可以处理从Server-Socket 发送到客户端套接字的多个请求(消息),我也不想close 套接字,因为socket 必须通过应用程序连接。

【问题讨论】:

  • 必须使用套接字吗?你熟悉 Java RMI 吗? Java RMi 允许您避免这种套接字/端口方法。在客户端断开连接方面需要注意一些事项。
  • 是的,我必须使用套接字。
  • 请澄清您的问题。好像两边都有一个ServerSocket调用accept()?
  • ServerSocket 只在我这边,因为客户端是有人建的。所以当客户端运行它连接到我的服务器套接字。然后我向客户发送订单请求,根据该订单请求,它会向我发回一些消息。现在在这个消息传递过程中。我再次发送另一个订单请求,但连接受阻。我不熟悉RMI。但我也一定会完成的。

标签: java sockets


【解决方案1】:

在客户端,您使用Socket 对象连接到使用单个 ServerSocket 的服务器。建立连接后,您将在两端都有一个 Socket,您可以使用此 Socket 到 Serversocket 连接向任一方向发送数据。 IE。 仅新连接需要单个服务器套接字。

见:here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-28
    • 2016-07-23
    • 2010-09-15
    • 2011-05-23
    • 2011-04-18
    • 1970-01-01
    • 2020-04-08
    • 2011-02-11
    相关资源
    最近更新 更多