import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public Server() {
try {
System.out.println("Server starting... port:9998...");
ServerSocket ss = new ServerSocket(9998);
Socket s = ss.accept();
ObjectInputStream ois = new ObjectInputStream(s.getInputStream());
User userObj = (User) ois.readObject();
System.out.println("Server...从客户端读取:" + userObj.toString());
ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream());
oos.writeObject(userObj);
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new Server();
}
}
服务器端,读取客户端数据需要处理业务则处理业务并响应。
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
public Client() {
try {
System.out.println("client ...");
Socket s = new Socket("127.0.0.1", 9998);
User user = new User("FrankcoLuo", 90);
ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream());
oos.writeObject(user);
ObjectInputStream ois = new ObjectInputStream(s.getInputStream());
User userObj = (User) ois.readObject();
System.out.println("Client...从服务器读取:" + userObj.toString());
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new Client();
}
}
客户端。
import java.io.Serializable;
public class User implements Serializable{
private String name;
private int age;
public User(String name, int age) {
super();
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "User name:" + name + ", age:" + age;
}
}
User类,需要实现序列化。否则会报java.io.NotSerializableException异常。
输出:
1.服务端console:
Server starting... port:9998...
Server...从客户端读取:User name:FrankcoLuo, age:90
2.客户端console:
client ...
Client...从服务器读取:User name:FrankcoLuo, age:90
socket编程server和client简单的读取和输出数据(1)
最新推荐文章于 2022-07-12 22:49:04 发布