如何在java套接字编程中接收对象?

如何在java套接字编程中接收对象?,java,sockets,Java,Sockets,我是java网络编程新手 我编写了一个简单的客户机-服务器代码,将类的对象从客户机发送到服务器 我使用PrintStream发送对象,它还可以,但在使用BufferedReader 客户端代码: public class Client3 { public String username; public String password; public static void main(String argv[]) throws IOException { Client3 account

我是java网络编程新手

我编写了一个简单的客户机-服务器代码,将类的对象从客户机发送到服务器

我使用
PrintStream
发送对象,它还可以,但在使用
BufferedReader

客户端代码:

public class Client3 {

public String username;
public String password;

public static void main(String argv[]) throws IOException
{
    Client3 account = new Client3();
    account.username = "PJA";
    account.password = "123456";

    Socket s = new Socket("localhost",6000);
    PrintStream pr = new PrintStream(s.getOutputStream());
    pr.println(account);
}

}
服务器代码:

public class Server3 {

public static void main(String argv[]) throws IOException
{
    ServerSocket s1 = new ServerSocket(6000);
    Socket s = s1.accept();
    BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
    Client3 a = new Client3();
    a = in.readLine(); // give a compilation error.

}

}
readline()
抛出编译错误,因为它只需要一个字符串

所以我的问题是:“有没有接收类对象的方法?”

Q:“有没有接收类对象的方法?”

答:是的,有很多方法:

  • 爪哇

  • 爪哇

  • 您可以使用本机Java序列化并直接写入Java套接字(基本上,重新发明您自己的RMI):,或者。如果将对象标记为“可序列化”,则只需使用
    outputStream.writeObject()
    进行写入,使用
    ObjectInputStream()
    进行读取即可

  • 将对象状态读写为JSON,并通过套接字发送JSON文本:

  • 等等等等


  • 选项3)最接近您的要求。我也鼓励你考虑选项4)。这里有一个很好的教程:

    @Abdelhak我想接收我在客户端发送的对象。但我知道这是编译错误,因为它只需要一个字符串,但我正在寻找一种接收该对象的方法。感谢我尝试了本机java序列化,效果很好+1.