public class Server {
static ExecutorService executor = new ThreadPoolExecutor(30, 60, 3L, TimeUnit.HOURS,
new ArrayBlockingQueue<Runnable>(15), Executors.defaultThreadFactory(), new ThreadPoolExecutor.AbortPolicy());
public static void main(String[] args) {
ThreadPoolExecutor executor1 = (ThreadPoolExecutor) executor;
try {
ServerSocket serverSocket = new ServerSocket(6688);
Socket socket = null;
while (true) {
System.out.println("服务器:开始监听6688");
socket = serverSocket.accept();
myruns command = new myruns(socket);
new Thread(command).start();
executor.execute(command);
System.out.println("第" + executor1.getActiveCount() + "个客户端连接服务器");
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class myruns implements Runnable {
Socket socket = null;
ObjectInputStream ois = null;
public myruns(Socket socket) {
this.socket = socket;
}
@Override
public void run() {
// TODO Auto-generated method stub
try {
ois = new ObjectInputStream(socket.getInputStream());
while (true) {
while (ois.available() != -1) {
Thread.sleep(1000);
try {
User user = (User) ois.readObject();
System.out.println(user.toString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} finally {
Thread.interrupted();
}
}
}
这个是服务端的代码
public class Client {
static Data data = Data.getInstance();
static App app = new App();
public static void main(String[] args) throws UnknownHostException, IOException {
Socket socket = new Socket("127.0.0.1", 6688);
try {
ObjectOutputStream objectOutputStream = new ObjectOutputStream(socket.getOutputStream());
while (true) {
if (data.getS1().equals("退出系统")) {
socket.close();
System.exit(0);
}
objectOutputStream.writeObject(new User());
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
这个是客户端的
究极萌新想问问各位大牛 这个到底咋回事 在教室看了一天没看出来咋解决 哭了哭了。
public class User implements Serializable {<!-- -->
对象也是序列化的了。。
java.io.StreamCorruptedException: invalid stream header: ACED7372
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:936)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:394)
at Common.myruns.run(Server.java:59)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
java.io.StreamCorruptedException: invalid stream header: 00050009
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:936)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:394)
at Common.myruns.run(Server.java:59)
at java.lang.Thread.run(Thread.java:748)
QAQ这个异常搞了我几天了