为了账号安全,请及时绑定邮箱和手机立即绑定

运行Client端报错

Server

package socket;


import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.io.PrintWriter;

import java.net.ServerSocket;

import java.net.Socket;


/*

 * 基于TCP协议的服务端

 */

public class TCPServer {


public static void main(String[] args) {

try {

//1、创建一个服务器端的Socket,即ServerSocket,指定绑定的端口,并对其监听

ServerSocket socket = new ServerSocket(5000);

//2、调用accept()方法对其监听,并等待客户端的响应

System.out.println("****服务器即将启动,等待客户端的连接****");

Socket socket2 = socket.accept();//在没有连接前,处于阻塞状态

//3、获取输入流,并等待客户端的响应

InputStream iStream = socket2.getInputStream();

InputStreamReader iReader = new InputStreamReader(iStream);//把字节流转换成字符流

BufferedReader bReader = new BufferedReader(iReader);//缓存存储

String info = null;

while((info = bReader.readLine())!=null){

System.out.println("我是服务器,客户端发送的信息:"+info);

}

socket2.shutdownInput();

//4、获取输出流,响应客户端的响应

OutputStream oStream = socket2.getOutputStream();

PrintWriter pWriter = new PrintWriter(oStream);

pWriter.write("欢迎你登入!!!");

pWriter.flush();

//5、关闭资源

oStream.close();

pWriter.close();

bReader.close();

iReader.close();

iStream.close();

socket.close();

socket2.close();

} catch (IOException e) {

e.printStackTrace();

}


}


}

Client

package socket;


import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.io.PrintWriter;

import java.net.Socket;

import java.net.UnknownHostException;


/*

 * 基于TCP协议的客户端

 */

public class TCPClient {


public static void main(String[] args) {

try {

//1、创建客户端的Socket,并指定地址和端口

Socket socket = new Socket("localhost", 5000);

//2、获取输出流,向服务器发送信息

OutputStream oStream = socket.getOutputStream();//字节输出流

PrintWriter pWriter = new PrintWriter(oStream);//将输出流转换成打印流

pWriter.write("用户名:admin;密码:123");

pWriter.flush();

socket.shutdownInput();

//3、接收服务器发送来的反馈信息

InputStream iStream = socket.getInputStream();

//InputStreamReader inputStreamReader = new InputStreamReader(iStream);//将字节流转换成字符流

BufferedReader bReader = new BufferedReader(new InputStreamReader(iStream));

String info = null;

while((info = bReader.readLine())!=null){

System.out.println("我是客户端,服务器反馈的信息:"+info);

}

//4、关闭资源

iStream.close();

bReader.close();

pWriter.close();

oStream.close();

socket.close();

} catch (UnknownHostException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}


}


}

按照视频讲的代码来写的,Server可以正常运行,但运行Client就会报这个错误

java.net.SocketException: Connection reset

at java.net.SocketInputStream.read(SocketInputStream.java:196)

at java.net.SocketInputStream.read(SocketInputStream.java:122)

at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)

at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)

at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)

at java.io.InputStreamReader.read(InputStreamReader.java:184)

at java.io.BufferedReader.fill(BufferedReader.java:154)

at java.io.BufferedReader.readLine(BufferedReader.java:317)

at java.io.BufferedReader.readLine(BufferedReader.java:382)

at socket.TCPServer.main(TCPServer.java:30)

有没有知道怎么回事

正在回答

2 回答

/*

 * 基于TCP协议的客户端

 */

public class TCPClient {


public static void main(String[] args) {

try {

// 1、创建客户端的Socket,并指定地址和端口

Socket socket = new Socket("localhost", 5000);

// 2、获取输出流,向服务器发送信息

OutputStream oStream = socket.getOutputStream();// 字节输出流

PrintWriter pWriter = new PrintWriter(oStream);// 将输出流转换成打印流

pWriter.write("用户名:admin;密码:123");

pWriter.flush();

socket.shutdownOutput();//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

// 3、接收服务器发送来的反馈信息

InputStream iStream = socket.getInputStream();

// InputStreamReader inputStreamReader = new

// InputStreamReader(iStream);//将字节流转换成字符流

BufferedReader bReader = new BufferedReader(new InputStreamReader(iStream));

String info = null;

while ((info = bReader.readLine()) != null) {

System.out.println("我是客户端,服务器反馈的信息:" + info);

}

// 4、关闭资源

iStream.close();

bReader.close();

pWriter.close();

oStream.close();

socket.close();

} catch (UnknownHostException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}


}


1 回复 有任何疑惑可以回复我~
#1

天翼飞虹 提问者

非常感谢!
2016-10-25 回复 有任何疑惑可以回复我~

到底是改了哪里?我的也报这样的错误

0 回复 有任何疑惑可以回复我~
#1

单行道上

加那么多感叹号你看不到
2017-02-11 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

运行Client端报错

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信