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 这里省略代码