0
我正在尝试编写一个简单的客户端/服务器Echo应用程序,我的客户端似乎在发送输入,但服务器似乎并未将其接收并发回。客户端服务器应用程序不能正常工作
这里的服务器:
import java.io.*;
import java.net.*;
public class Server
{
public static void main(String args[]) throws Exception
{
int port = 2000;
ServerSocket serverSocket;
Socket client;
BufferedReader is = null;
BufferedWriter os = null;
serverSocket = new ServerSocket(port);
System.err.println("Server established on port " + port);
client = serverSocket.accept();
System.err.println("Client connected");
is = new BufferedReader(
new InputStreamReader(client.getInputStream()));
os = new BufferedWriter(
new OutputStreamWriter(client.getOutputStream()));
System.err.println("Server established on port " + port);
String message = "";
while((message = is.readLine()) != null)
{
System.err.println("Messaged received " + message);
os.write(message);
}
is.close();
os.close();
serverSocket.close();
}
}
然后,客户看起来是这样的:
import java.io.*;
import java.net.Socket;
public class Client
{
public static void main(String args[]) throws Exception
{
String host = "localhost";
int port = 2000;
Socket socket;
socket = new Socket(host, port);
BufferedReader is = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
BufferedWriter os = new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream()));
System.err.println("Connected to " + host + " on port " + port);
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String input = "";
while((input = br.readLine()) != null)
{
System.out.println("Sending " + input);
os.write(input);
System.out.println("Receiving " + is.read());
}
is.close();
os.close();
socket.close();
}
}
我缺少什么,我相信我可以俯瞰简单的东西。
在你给他们写信之后冲洗流可能吗?你也应该考虑使用ARM,或者最后尝试捕捉来管理这些资源。 –