【发布时间】:2011-01-23 12:42:54
【问题描述】:
谁能给我一个通过 TCP 发送 Ascii msg 的示例?(在网上找不到示例)
谢谢,
射线。
【问题讨论】:
-
在万维网中找不到 any 示例几乎令人难以置信:download.oracle.com/javase/tutorial/networking/index.html
标签: java network-programming javadoc
谁能给我一个通过 TCP 发送 Ascii msg 的示例?(在网上找不到示例)
谢谢,
射线。
【问题讨论】:
标签: java network-programming javadoc
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());
}
【讨论】:
不确定,我认为这应该可行:
try (DataOutputStream outToClient = new DataOutputStream(socket.getOutputStream())) {
outToClient.write(stringMessage.getBytes("US-ASCII"));
} catch (IOException e) {}
【讨论】:
原问题中没有说明是否必须处理ASCII控制码。
虽然接受的答案适用于 printable ASCII 字符,但我在将它用于包含 ASCII 控制代码的字符串时遇到了问题(在 Windows 7 Enterprise SP1 上),尤其是包含任何 java 换行符“字符的字符串” “,例如VT、CR、LF 等。一种解决方法是将字符串作为字节发送,然后在远端将其转换回字符串。
请参阅我对这个问题的回答,了解如何处理这种情况。
Reading Lines and byte[] from input stream
和我密切相关的问题和它被接受的答案:
Need TCPIP client that blocks until a specific character sequence is received
【讨论】: