服务器端报错:java.net.SocketException: Connection reset

来源:6-2 综合练习---实现分析

qq_昼绽_0

2016-11-05 16:46

http://img.mukewang.com/581d9c330001bc7109790249.jpg

package com.imooc.thread;

import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;

import com.jinxin.entity.File;
import com.jinxin.entity.User;
import com.jinxin.service.FileService;
import com.jinxin.service.UserService;
import com.jinxin.util.CommandTransfer;

public class ServerThread extends Thread {
	//和本线程相关的socket
		Socket socket;
		public ServerThread (Socket socket){
			this.socket =socket;
			
		}
		public void run(){
				//3.创建输入流,并读取客户端信息
			try {
				InputStream is = socket.getInputStream();
				ObjectInputStream ois = new ObjectInputStream(is);//这是28行
				CommandTransfer com=null;
				try {
					com = (CommandTransfer)ois.readObject();
				} catch (ClassNotFoundException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				operate(socket,com);
				socket.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		public void operate(Socket socket ,CommandTransfer com) throws IOException{
			if(com.getCmd().equals("select")){
				UserService userService = new UserService();
				if(userService.ckeckout((User)com.getData())){
					socket.shutdownInput();
					OutputStream os = socket.getOutputStream();
					ObjectOutputStream oos = new ObjectOutputStream(os);
					com.setFlag(true);
					oos.writeObject(com);
					oos.flush();
					socket.shutdownOutput();
				}else{
					socket.shutdownInput();
					OutputStream os = socket.getOutputStream();
					ObjectOutputStream oos = new ObjectOutputStream(os);
					com.setFlag(false);
					oos.writeObject(com);
					oos.flush();
					socket.shutdownOutput();
				}
			}
			if(com.getCmd().equals("register")){
				UserService userService = new UserService();
				if(userService.ckeckout((User)com.getData())){
					socket.shutdownInput();
					OutputStream os = socket.getOutputStream();
					ObjectOutputStream oos = new ObjectOutputStream(os);
					com.setFlag(false);
					oos.writeObject(com);
					oos.flush();
					socket.shutdownOutput();
				}else{
					userService.register((User)com.getData());
					socket.shutdownInput();
					OutputStream os = socket.getOutputStream();
					ObjectOutputStream oos = new ObjectOutputStream(os);
					com.setFlag(true);
					oos.writeObject(com);
					oos.flush();
					socket.shutdownOutput();
				}
			}
			if(com.getCmd().equals("upload")){
				FileService fileService = new FileService();
				fileService.upload((File)com.getData());
				socket.shutdownInput();
			}
		}
}

这是项目地址:http://www.imooc.com/opus/resource?opus_id=3426

写回答 关注

3回答

  • 寻梦123
    2016-11-07 14:08:03
    已采纳

    先启动服务器,再启动客户端。

    qq_昼绽_...

    不是这个,已解决

    2016-11-07 14:23:57

    共 1 条回复 >

  • 夏虫ljw
    2016-12-14 20:29:08

    请问下是什么原因造成的?卡在这边过不去了,一直没找到原因

    qq_昼绽_...

    我也忘了,代码更新了,你可以看看

    2016-12-15 00:09:59

    共 1 条回复 >

  • 慕粉4005235
    2016-11-28 22:23:16

    求告知怎么解决的?我也遇到这个问题

    qq_昼绽_...

    白天更新下代码

    2016-11-30 01:30:30

    共 1 条回复 >

Java Socket应用---通信是这样练成的

分享的是 Java 中的网络编程,使用Socket实现网络聊天通信

125012 学习 · 590 问题

查看课程

相似问题