读取前无法写入套接字

问题描述

我有两个套接字应该发送一个数据包,并监听响应。

客户端(stt 是 Socket):

BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(stt.getoutputStream()));
BufferedReader wrr = new BufferedReader(new InputStreamReader(stt.getInputStream()));
if (i == JOptionPane.YES_OPTION) {
    wr.write("cnt\n");
    wr.write(s + "\n");
    
    #String s1 = wrr.readLine();
    #if (s1.equals("cnt")) {
    #    other = stt;
    #    startSc(MP);
    #}
} else wr.write("0");
wr.close();
wrr.close();

服务器端(包括套接字):

BufferedReader r = new BufferedReader(new InputStreamReader(inc.getInputStream()));
BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(inc.getoutputStream()));
String correction = r.readLine(); //that line blocks
...

在这种情况下(带有#的行);服务器端收不到数据包。

如果我在客户端删除带有 # 的行,问题就解决了。

如何在写入后立即读取响应?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)