socket编程server跟client简单的读取和输出数据(1)

socket编程server和client简单的读取和输出数据(1)
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