任何人都可以通过TCP发送Ascii消息的示例?(无法在网上找到示例)
感谢,
射线。
答案 0 :(得分:1)
Here's an example写入和读取回显服务器。
简化摘录:
Socket echoSocket = null;
PrintWriter out = null;
BufferedReader in = null;
try {
echoSocket = new Socket("taranis", 7);
out = new PrintWriter(echoSocket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(
echoSocket.getInputStream()));
} catch (UnknownHostException e) {
System.err.println("Don't know about host: taranis.");
System.exit(1);
} catch (IOException e) {
System.err.println("Couldn't get I/O for "
+ "the connection to: taranis.");
System.exit(1);
}
BufferedReader stdIn = new BufferedReader(
new InputStreamReader(System.in));
String userInput;
while ((userInput = stdIn.readLine()) != null) {
out.println(userInput);
System.out.println("echo: " + in.readLine());
}
答案 1 :(得分:1)
不确定,我认为这应该有效:
try (DataOutputStream outToClient = new DataOutputStream(socket.getOutputStream())) {
outToClient.write(stringMessage.getBytes("US-ASCII"));
} catch (IOException e) {}
答案 2 :(得分:1)
原始问题中未说明是否必须处理ASCII控制代码。
虽然接受的答案适用于可打印的 ASCII字符,但我遇到了问题(在Windows 7 Enterprise SP1上),使用它来处理包含ASCII控制代码的字符串,尤其是包含任何java换行“字符的字符串“,例如VT,CR,LF等。一种解决方法是将字符串作为字节发送并将其转换回远端的字符串。
请参阅我对这个问题的答案,了解如何处理这种情况。
Reading Lines and byte[] from input stream
和我密切相关的问题,这是接受的答案:
Need TCPIP client that blocks until a specific character sequence is received