如何使用java用outputstream(Telnet客户端)编写字符串

时间:2013-12-28 09:56:33

标签: java outputstream

我尝试使用此代码,但是当我启动连接时,似乎服务器没有收到字符串(命令):

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());

1 个答案:

答案 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的具体内容,它可能会在您刷新流之前缓冲数据。