我尝试使用此代码,但是当我启动连接时,似乎服务器没有收到字符串(命令):
public static void sendMessage(TelnetClient s, String myMessageString)
throws IOException {
OutputStream os = s.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(os);
oos.writeObject(myMessageString);
}
我还尝试仅使用输出流并执行以下操作:
os.write(myMessageString.getbytes());
答案 0 :(得分:4)
你绝对不想使用ObjectOutputStream
- 这将使用你的telnet服务器不会期望的二进制序列化。
最好创建OutputStreamWriter
:
// Adjust the encoding to whatever you want, but you need to decide...
Writer writer = new OutputStreamWriter(s.getOutputStream(), "UTF-8");
writer.write(myMessageString);
writer.flush();
flush
调用很可能是以前缺少的 - 根据TelnetClient
的具体内容,它可能会在您刷新流之前缓冲数据。