【问题标题】:Can ServerSocket write to client before reading from client?ServerSocket 可以在从客户端读取之前写入客户端吗?
【发布时间】:2014-12-28 07:38:08
【问题描述】:

ServerSocket 接受到客户端的连接后,ServerSocket 能否在客户端发送消息之前开始向客户端写入数据?当我首先尝试从 ServerSocket 写入客户端时,客户端会永远阻止读取它。但是,如果让客户端先向服务器发送消息,它们之间的 I/O 流就可以正常工作。

【问题讨论】:

  • 当然,您可以在客户端发送任何内容之前写入服务器客户端套接字,由 accept() 返回。服务器经常在连接时发送“欢迎”横幅,然后询问用户名。有关可能的问题,请参阅 EJP 答案。

标签: java sockets inputstream serversocket outputstream


【解决方案1】:

ServerSocket 既不能读也不能写,但接受的 Socket 可以按任意顺序或同时进行。

可能您正在读取行但没有发送行,或者没有刷新缓冲的输出流或写入器。

【讨论】:

    【解决方案2】:

    是的,你说得对,我的意思是从 accept() 方法中获取 Socket。

    我的问题很简单。客户端正在执行 readLine() 方法调用,但服务器未发送“\n”字符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-03
      • 2021-08-23
      • 2012-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-07
      相关资源
      最近更新 更多