package com.huawei.sockets; import java.io.ObjectInputStream; import java.net.ServerSocket; import java.net.Socket; import com.huawei.entity.Person; public class Servers extends Thread { private Socket socket; // 包含客户端信息的 套接字 对象 public Servers(Socket socket) { this.socket = socket; this.start(); } public static void main(String[] args) { try { ServerSocket server = new ServerSocket(2226); // 创建服务器端监听器 while (true) { System.out.println("监听中..."); Socket client = server.accept(); // 阻塞 监听 客户端信息 当接受到信息 就执行下面的代码 new Servers(client);// 开启一个线程处理客户端信息 } } catch (Exception e) { System.out.println("服务器端异常:" + e.getMessage()); } } @Override public void run() { try { // 获取输入流 并 读取信息 ObjectInputStream in = new ObjectInputStream(this.socket .getInputStream()); Person p = (Person) in.readObject(); System.out.println("获取客户端信息:" + p); } catch (Exception e) { System.out.println("读取客户端信息异常:" + e.getMessage()); } } }
服务器端负责 监听端口信息
package com.huawei.sockets; import java.io.ObjectOutputStream; import java.net.Socket; import com.huawei.entity.Person; public class Client { public static void main(String[] args) { Socket client = null; try { client = new Socket("localhost", 2226);// 创建客户端 套接字 对象 ObjectOutputStream out = new ObjectOutputStream(client .getOutputStream()); out.writeObject(new Person("socket test", 20, "7.gif"));// 向服务器 发送 信息 } catch (Exception e) { System.out.println("客户端异常:" + e.getMessage()); } finally { if (null != client){ try { client.close(); } catch (Exception e2) { System.out.println("客户端资源释放异常:" + e2.getMessage()); } } } } }
客户端 发送信息
Person 类 一个简单的 javabean 这里省略代码