我有一个侦听某些x端口的套接字。
我可以从客户端应用程序将数据发送到套接字,但是无法从服务器套接字获得任何响应。
BufferedReader bis = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); String inputLine; while ((inputLine = bis.readLine()) != null) { instr.append(inputLine); }
..此代码部分从服务器读取数据。
但是,直到关闭服务器上的套接字,我才能从服务器读取任何内容。服务器代码不受我控制,无法对其进行编辑。
如何从客户端代码中克服这个问题。
谢谢
为了在客户端和服务器之间进行通信,必须明确定义协议。
客户端代码将阻塞,直到从服务器收到一行或关闭套接字为止。您说过只有在关闭插座后才能收到东西。因此,这可能意味着服务器不会发送以EOL字符结尾的文本行。readLine()因此,该方法将阻塞,直到在流中找到此类字符或关闭套接字为止。如果服务器不发送行,请不要使用readLine()。使用适合定义的协议的方法(我们不知道)。
readLine()