前端学习中...... 2021-06-13 19:19 采纳率: 0%
浏览 289

java.net.SocketException: Connection reset异常解决方案

/*
 * 这是服务器与某个客户端的通讯线程
 */

package qqModel;

import java.net.*;
import qqCommon.Message;
import java.io.*;

public class SerConClientThread extends Thread {

    Socket s;
    
    public SerConClientThread(Socket s) {
        //把服务器和客户端连接赋给s
        this.s = s;
    }
    public void run() {
    
//        while(true ) {
            
            System.out.println("这是线程");
            //这里该线程就可以接受客户端的信息
    //        ObjectInputStream ois;
            try {
                ObjectInputStream ois = new ObjectInputStream(s.getInputStream());
                Message m = (Message) ois.readObject();
                
                System.out.println(m.getSender()+"发送给"+m.getGetter()+"的消息:"+m.getCon());
                //完成转发
                //取得接收人的通讯线程
                SerConClientThread sc = ManageClientThread.getClientThread(m.getGetter());
                //转发给接收人
                ObjectOutputStream oos = new ObjectOutputStream(sc.s.getOutputStream());
                //发送
                oos.writeObject(m);
                
                ois.close();
                oos.close();
            } catch (IOException | ClassNotFoundException e) {
                e.printStackTrace();
            }
            
            
//        }
    }
}
  • 写回答

2条回答 默认 最新

  • 关注

    检查一下你的Message类有没有系列化。

    如果没有在类名后面添加如下代码

     implements Serializable
    评论

报告相同问题?