当前位置: 代码迷 >> J2SE >> 很简单的socket 有关问题; 希望有人帮忙回答下
  详细解决方案

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

热度:57   发布时间:2016-04-23 21:45:32.0
很简单的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;
  相关解决方案