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();
            }
            
            
//        }
    }
}

 

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

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

 implements Serializable

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps: 问答会员【8折】购 ,仅需→¥23.2,即可享受5次/月 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m