我尝试编写一个应用程序读取并将数据发送到路透社 TOF 模拟器。
我使用文件分隔符(FS ASCII(28))向 TOF 服务器发送消息,如下所示
包 tr.com.calikbank.bnspr.treasury.reutersClient;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;
public class Test {
/**
* @param args
*/
public static final String FS = Character.toString((char) 28);
public static final String US = Character.toString((char) 31);
public static final String GS = Character.toString((char) 29);
private static DataInputStream in;
private static Socket sock;
private static DataOutputStream out;
public static void main(String[] args) throws UnknownHostException,
IOException {
// TODO Auto-generated method stub
sock = new Socket("10.90.20.76", 5003);
sock.setKeepAlive(true);
in = new DataInputStream(sock.getInputStream());
out = new DataOutputStream(sock.getOutputStream());
String message = FS + "333" + US + "AE" + GS + "AAAA#1" + FS;
out.flush();
out.writeBytes(message);
out.flush();
// BufferedReader reader = new BufferedReader(new
// InputStreamReader(sock.getInputStream()));
StringBuilder sb = new StringBuilder();
String line;
// line = reader.readLine();
while ((line = in.readLine()) != null) {
sb.append(line).append("\n");
if (line.isEmpty())
break;
}
// line = in.readLine();
// sb.append(line).append("\n");
System.out.println("Message received from the server : "
+ sb.toString());
}
}
<>
但是程序卡在while循环中,当我停止服务器然后返回整个字符串但我需要不停止服务器。有什么问题。
我的决定是 readline 的参考有问题 5530xD0xA
谢谢