客户端User对象
package com.common;
/**
* 用户
*/
public class User implements java.io.Serializable{
private String name;
private String password;
public User() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
客户端
package test2;
import com.common.User;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
/**
* 客户端
*/
public class MyClient {
public static void main(String[] args) {
MyClient myClient=new MyClient();
}
public MyClient(){
try {
//设置端口号,127.0.0.1本机连接IP
Socket s=new Socket("127.0.0.1",3456);
//新建User对象
User u=new User();
u.setName("咚咚锵");
u.setPassword("123456");
//输出对象流
ObjectOutputStream oos=new ObjectOutputStream(s.getOutputStream());
//将指定的User对象写入ObjectOutputStream
oos.writeObject(u);
System.out.println("ok");
//关闭客户端
s.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
服务器User
package com.common;
/**
* 用户
*/
public class User implements java.io.Serializable{
private String name;
private String password;
public User() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
服务器
package com.test1;
import com.common.User;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.net.ServerSocket;
import java.net.Socket;
/**
* 服务器
*/
public class MyServer {
public static void main(String[] args) {
MyServer myServer=new MyServer();
}
public MyServer(){
try {
System.out.println("开始监听");
//设置服务器端口
ServerSocket ss=new ServerSocket(3456);
//阻塞,等待连接
Socket s=ss.accept();
//获取对象流
ObjectInputStream obj=new ObjectInputStream(s.getInputStream());
//转换为User对象
User u=(User)obj.readObject();
System.out.println("接收到:"+u.getName()+" "+u.getPassword());
//关闭服务器
ss.close();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
这里要注意,User必须实现
java.io.Serializable
不实现此接口的类将不会使任何状态序列化或反序列化。
只有支持java.io.Serializable接口的对象才能写入流中。