关于socket输入输出流的问题
这里是一个服务端客户端程序
在客户端中,有一个logon方法
public boolean logon(String acount,String password) throws
UnknownHostException,
IOException{
System.out.println("客户端调用controller中logon方法");
if(socket == null){
socket = new Socket(serverIp,serverPort);
}
System.out.println("客户端打开socket,并开始连接服务端");
input = new ObjectInputStream(socket.getInputStream());
out = new ObjectOutputStream(socket.getOutputStream());
System.out.println("客户端成功打开输入,输出流");
}
服务端中,在连接后,也会去获取它的输入输出流
public ServerThread(Socket socket) throws IOException{
this.socket = socket;
System.out.println("准备获取客户端输入输出流");
this.input = new ObjectInputStream(socket.getInputStream());
this.output = new ObjectOutputStream(socket.getOutputStream());
System.out.println("成功构造服务线程");
}
这里是采用一个线程去处理的,在获取输入输出流的时候也堵塞了。
先启动服务端,在启动客户端,根据控制台的打印,显示客户端,服务端同时堵塞在了获取输入输出流上了,有没有人知道这个是什么原因呢?
但是在获得input和out对象的时候,这个线程堵塞了,一直不会往下走,
------解决方案--------------------查文档,objectOutStream的构造方法有说明。。。
------解决方案--------------------客户端写入信息(OutputStream)到流,发送到服务端,服务端从流中接受信息(InputStream)
服务端发送反馈信息写入流(OutputStream),客户端从流中接收服务端的反馈信息(InputStream)
我想应该有个先后顺序,不然可能就会导致流阻塞
------解决方案--------------------
楼上我是架子良啊