TCP套接字上的Ascii
任何人都可以通过TCP发送Ascii消息的示例?(无法在网上找到示例)
谢谢,
射线。
这是写入和读取回显服务器的示例 。
简化摘录:
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控制代码。
虽然接受的答案适用于可打印的 ASCII字符,但我遇到了问题(在Windows 7 Enterprise SP1上),使用它来处理包含ASCII控制代码的字符串,特别是包含任何java换行“字符”的字符串,例如VT,CR,LF等解决方法是将字符串作为字节发送并将其转换回远端的字符串。
请参阅我对此问题的答案,了解如何处理这种情况。
从输入流中读取行和byte []
和我密切相关的问题,它是公认的答案:
需要TCPIP客户端阻塞,直到收到特定的字符序列