Java ObjectOutputStream-客户端/服务器通信
我是java客户机-服务器通信新手,我面临着从客户机端向服务器端发送对象的问题。不知怎的,我的程序在试图传输对象时发生了故障。可能的原因是ObjectOutputStream实现 数据库登录按钮Java ObjectOutputStream-客户端/服务器通信,java,object,client-server,objectinputstream,objectoutputstream,Java,Object,Client Server,Objectinputstream,Objectoutputstream,我是java客户机-服务器通信新手,我面临着从客户机端向服务器端发送对象的问题。不知怎的,我的程序在试图传输对象时发生了故障。可能的原因是ObjectOutputStream实现 数据库登录按钮 class Handler implements ActionListener { Client client = new Client(); List<String> parameterList = new ArrayList<String>(); Clien
class Handler implements ActionListener {
Client client = new Client();
List<String> parameterList = new ArrayList<String>();
ClientParameter parameter;
public void actionPerformed(ActionEvent event) {
if(event.getSource()==buttonConnect) {
parameterList.add(username);
parameterList.add(password);
parameter = new ClientParameter(parameterList);
client.connectToServer(parameter);
}
和服务器类
public class Server {
private static void handleConnection(Socket client) throws IOException {
ObjectInputStream objectIn = new ObjectInputStream(client.getInputStream());
ObjectOutputStream objectOut = new ObjectOutputStream(client.getOutputStream());
ClientParameter parameter;
try {
parameter = (ClientParameter) objectIn.readObject();
System.out.println(parameter);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(3141);
while(true) {
Socket client = null;
try {
client = server.accept();
handleConnection(client);
}
catch(IOException e) {
e.printStackTrace();
}
finally {
if(client!=null) {
try {
client.close();
}
catch(IOException e) {
System.out.println(e);
}
}
}
}
}
}
谢谢大家! 服务器首先读取客户端发送的内容。客户端也从读取服务器发送的内容开始。所以这是一个僵局 实际上,ObjectInputStream的构造函数在收到序列化流头之前会阻塞: 从流中读取序列化流头并进行验证。此构造函数将阻塞,直到相应的ObjectOutputStream写入并刷新标头 删除以下行,因为您无论如何都不会对ObjectInputStream执行任何操作:
ObjectInputStream objectIn = new ObjectInputStream(server.getInputStream());
服务器首先读取客户端发送的内容。客户端也从读取服务器发送的内容开始。所以这是一个僵局 实际上,ObjectInputStream的构造函数在收到序列化流头之前会阻塞: 从流中读取序列化流头并进行验证。此构造函数将阻塞,直到相应的ObjectOutputStream写入并刷新标头 删除以下行,因为您无论如何都不会对ObjectInputStream执行任何操作:
ObjectInputStream objectIn = new ObjectInputStream(server.getInputStream());
服务器首先读取客户端发送的内容。客户端也从读取服务器发送的内容开始。所以这是一个僵局 实际上,ObjectInputStream的构造函数在收到序列化流头之前会阻塞: 从流中读取序列化流头并进行验证。此构造函数将阻塞,直到相应的ObjectOutputStream写入并刷新标头 删除以下行,因为您无论如何都不会对ObjectInputStream执行任何操作:
ObjectInputStream objectIn = new ObjectInputStream(server.getInputStream());
服务器首先读取客户端发送的内容。客户端也从读取服务器发送的内容开始。所以这是一个僵局 实际上,ObjectInputStream的构造函数在收到序列化流头之前会阻塞: 从流中读取序列化流头并进行验证。此构造函数将阻塞,直到相应的ObjectOutputStream写入并刷新标头 删除以下行,因为您无论如何都不会对ObjectInputStream执行任何操作:
ObjectInputStream objectIn = new ObjectInputStream(server.getInputStream());
ClientParameter
必须序列化感谢您提供的信息,但在读取ObjectInputStream和ObjectOutputStream的两行时仍会发生错误尝试刷新流。ClientParameter
必须序列化感谢您提供的信息,但是在读取ObjectInputStream和ObjectOutputStream的两行时仍然会发生错误。请尝试刷新流。ClientParameter
必须序列化感谢您提供的信息,但是,在读取ObjectInputStream和ObjectOutputStream的两行刷新流时仍然会发生错误。ClientParameter
必须序列化感谢这些信息,但是在读取ObjectInputStream和ObjectOutputStream的两行刷新流时仍然会发生错误。