无法在Java Socket / Client之间进行读写

时间:2013-04-06 09:01:43

标签: java sockets networking

我正在尝试使用java.net在Java中建立服务器和客户端之间的连接。我设法连接,但不发送任何数据。我已粘贴代码和输出:

服务器代码:

ServerSocket welcomeSocket = new ServerSocket(999);
Socket connectionSocket = welcomeSocket.accept();
System.out.println("Connected to: " + connectionSocket.toString());
DataOutputStream outToClient = newDataOutputStream(connectionSocket.getOutputStream());
outToClient.writeBytes("Testing connection");

客户代码:

Socket clientSocket = new Socket("130.236.248.52", 999);
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
modifiedSentence = inFromServer.readLine();
System.out.println("[From server:] " + modifiedSentence);

服务器输出: 连接到:套接字[addr = / 130.236.248.54,port = 51535,localport = 999]

客户端输出:

2 个答案:

答案 0 :(得分:1)

  1. 使用BufferedWriter撰写文字(就像您使用BufferedReader阅读文字一样)
  2. 在作者上调用flush()以强制输出通过
  3. 如果您在客户端呼叫readLine(),则需要有一个行尾来阅读。
  4.     BufferedWriter outToClient = new BufferedWriter(new OutputStreamWriter(connectionSocket.getOutputStream()));
        outToClient.write("Testing connection");
        outToClient.newLine();
        outToClient.flush();
    

答案 1 :(得分:0)

你正在读行,但你不是在写行。您需要附加行终止符或使用导出println()方法的类之一,并调用它。