Socket socket = new Socket("192.168.178.47", 82);
OutputStream out = socket.getOutputStream();
out.write("{ \"phone\": \"23456789\" }".getBytes());
out.flush();
//服务器
InputStream in = client.getInputStream();
ByteArrayOutputStream bOut = new ByteArrayOutputStream();
int i = 0;
while((i = in.read()) >= 0) {
bOut.write(i);
}
String complete = new String(bOut.toByteArray(), "UTF-8");
我曾尝试通过 OutputStream 将数据发送到套接字,但数据没有刷新。如果我在末尾添加一个 out.close();
那么它就可以正常工作,但是套接字已关闭并且我无法接受响应。有人知道为什么吗?服务器没有给出任何类型的错误。我用过 Java 1.7!
最佳答案
服务器可能正在等待行尾。如果是这种情况,请在文本中添加“\n”
关于Java OutputStream 仅在关闭时刷新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29750684/