目的是客户端发送图片的名字 然后服务器发过去   为什么会有错呢
at com.socketClient.run(socketClient.java:83)
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:134)
at java.net.SocketInputStream.read(SocketInputStream.java:121)
at com.socketClient.run(socketClient.java:83)
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:134)
at java.net.SocketInputStream.read(SocketInputStream.java:121)
at com.socketClient.run(socketClient.java:83)
//客户端
package com;import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;public class socketClient extends Thread { InputStream in;
DataOutputStream out;
OutputStream out1;
    String s;
    Socket socket = null;
public socketClient(String host, int port) {
// 建立socket对象

try {
socket = new Socket(host, port);

} catch (UnknownHostException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
} // 建立输入输出流对象
try {

out = new DataOutputStream(socket.getOutputStream());

} catch (IOException e1) {
e1.printStackTrace();
}

// 开始后台线程用于监听服务器端传送的信息
start(); // 然后开始接收用户输入信息并传送到客户端 /* String words = ""; while (true) {
try {

words = in2.readLine();

} catch (IOException e) {
e.printStackTrace();
}
sendMessage(words); }
*/
} public void run() {
//先设置名字在发送 messsage
while (true) {
try {
in = socket.getInputStream();
} catch (IOException e1) {

e1.printStackTrace();
}
try {
 out1=new FileOutputStream(new File("D:\\pic1\\"+s+".jpg")); 
}catch (FileNotFoundException e) {
e.printStackTrace();
}
   try {
int b=0;
byte[]tom =new byte[1024];
while((b = in.read(tom,0,tom.length))>0){
 out1.write(tom);
 out1.flush();
}
// out1.close();
} catch (IOException e) {
e.printStackTrace();
}
    
}
} private void sendMessage(String message) { this.s=message;
try {
out.writeUTF(message);
} catch (IOException e) {
e.printStackTrace();
} } // 程序开始执行
public static void main(String args[]) { int socketport = 13333;
String hostAddress = "114.214.101.24";// 其实可以通过参数指定IP和端口,这里简化这个过程
socketClient sc1= new socketClient(hostAddress, socketport);
sc1.sendMessage("0");

sc1.sendMessage("1"); }
}
// 服务器
package com;import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.sql.SQLException;public class Server{static Socket socketlist[] = new Socket[1000];public Server( int socketport ) throws IOException {

//listenForConnecting方法用于侦听连接
   listenForConnecting( socketport );}private void listenForConnecting( int socketport ) throws IOException {ServerSocket serversocket = new ServerSocket(socketport);//关键是侦听的部分,用一个while循环来实现while (true) {Socket socket = serversocket.accept();//一旦客户端连接进来,就增加一个线程用于与该客户端的通信,关键在于传递参数,
//将Server类和客户端的sokcet都传送到这个通信线程 new ConnectionForClient(this,socket);}
}
//SendMessageCenter方法用于发送信息给客户端public void sendImage (String s,Socket socket) throws IOException{     //建立输出流,将信息发送给客户端 
//你会发现一个用于储存客户端socket信息的数组socketlist[],该数组在客户 
//端连接或断开连接时更新数据,这里不详细讨论这个问题
// try {
      byte[] tom=new byte[1024];
  int b=0;
  FileInputStream in = new FileInputStream(new File("d:\\pic\\"+s+".jpg"));
  OutputStream out = socket.getOutputStream();
       
   System.out.println ("开始接收数据...");
   
    while((b = in.read(tom,0,tom.length))>0)
    {
     out.write(tom);
     out.flush();
    }
   
//    in.close();
 //  out.close();
   

// } catch (SQLException e) {

// e.printStackTrace();
//}

}}
package com;import java.io.DataInputStream;
import java.io.IOException;
import java.net.Socket;
public class ConnectionForClient extends Thread{Server server; Socket socket;//所有准备工作在构造器中完成public ConnectionForClient( Server server, Socket socket ) {this.server = server; this.socket = socket;start();}public void run() {//首先建立DataInputStream类用于接收客户端发送的信息DataInputStream dataIn = null;
try {
dataIn = new DataInputStream( socket.getInputStream() );
} catch (IOException e1) {

e1.printStackTrace();
}//类似于服务器的侦听连接工作,同样侦听客户端发送的信息while (true) {try {

String s = dataIn.readUTF();
if(!s.equals("")){
server.sendImage( s , this.socket );
}
} catch (IOException e) {

e.printStackTrace();
}

//一旦接收到客户端发送的信息,

}

} public static void main(String args[]) throws Exception {//程序开始执行     int socketport = 13333;     new Server(socketport);}}