首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

很简单的socket 有关问题; 希望有人帮忙回答下

2013-09-12 
很简单的socket 问题 希望有人帮忙回答下写socket 的时候遇见个问题java.net.SocketException: Connecti

很简单的socket 问题; 希望有人帮忙回答下;
写socket 的时候遇见个问题
      java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
at java.io.InputStreamReader.read(InputStreamReader.java:167)
at java.io.BufferedReader.fill(BufferedReader.java:136)
at java.io.BufferedReader.readLine(BufferedReader.java:299)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at com.bjkingtech.server.thread.ServerThread.run(ServerThread.java:18)
at java.lang.Thread.run(Thread.java:619)

服务器------------
public class Server {
static ServerSocket server=null;
public static void main(String[] args) throws InterruptedException, IOException {
try {
int i = 0;
server = new ServerSocket(8000);
System.out.println("服务器启动......");
Socket socket = null;
while (true) {
socket = server.accept();
System.out.println("接受" + i);
Thread.sleep(1000);
ServerThread run = new ServerThread(socket);
Thread t = new Thread(run);
t.start();
i++;
}
} catch (IOException e) {
e.printStackTrace();
}finally{
server.close();

}
}
package com.bjkingtech.client;
// 客户端;-------
 public class Client {

public static void main(String[] args) {
Client c = new Client();
try {
Socket socket = new Socket("192.168.1.155", 8000);
new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())).write("here we go");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

}
}
//-------服务线程-----------
package com.bjkingtech.server.thread;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;

public class ServerThread implements Runnable {
Socket socket = null;
public ServerThread(Socket socket) {
this.socket = socket;
}
public void run() {
System.out.println("启动线程========");
String msg = null;


try {
msg = new BufferedReader(new InputStreamReader(
socket.getInputStream())).readLine();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (socket != null) {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

}
}

多谢
socket Io?流??ioException SocketException
[解决办法]
这个不是问题,你如果不知道异常的英语单词,建议你可以查一下有道词典。
  java.net.SocketException: Connection reset
是说你的客户端与服务器断开了连接。
[解决办法]
new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())).write("here we go");
改成:  PrintWriter writer = new PrintWriter(s.getOutputStream());  
        writer.println("here we go");  
        writer.flush();  
这样试下
[解决办法]
一般是IP、端口不对。或者网络防火墙
[解决办法]
报java.net.SocketException: Connection reset这个错,如果你只运行Client.java的话
你在建立Socket之前没建服务

Socket socket = new Socket("192.168.1.155", 8000);
之前没先建服务,你的Server

热点排行
Bad Request.