TCP套接字上的Ascii

时间:2011-01-23 12:42:54

标签: java network-programming javadoc

任何人都可以通过TCP发送Ascii消息的示例?(无法在网上找到示例)

感谢,

射线。

3 个答案:

答案 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