Socket s = new Socket("127.0.0.1",10007);这句是连接到ip地址为127.0.0.1的电脑上的10007端口上;
FileInputStream fis = new FileInputStream(file);输入流关联文件,用来读取文件内容;
OutputStream out = s.getOutputStream();得到客户端的输出流,往里面写东西(写文件内容);
byte[] buf = new byte[1024];
int len = 0;
while((len = fis.read(buf)) != -1)
{
out.write(buf,0,len);
}
以上是把文件的内容读到一个byte数组中,再写到客户端的输出流里;
InputStream in = s.getInputStream();得到客户端的输入流,里面有服务器端传来的数据;
byte[] bufIn = new byte[1024];
int num = in.read(bufIn);
System.out.println(new String(bufIn,0,num));
以上是读取客户端输入流里面的数据并输出;
下面解释服务器端:
ServerSocket ss = new ServerSocket(10007);开启一个10007端口
while(true){
Socket s = ss.accept();
new Thread(new PicThread(s)).start();
}
以上是得到连接的客户端,并为每个连接的客户端开启一个线程;
解释服务器线程:
InputStream in = s.getInputStream();得到客户端的输入流,里面放有客户端文件内容;
File file = new File(ip+"("+count+")"+".jpg");
while(file.exists())
file = new File(ip+"("+(count++)+")"+".jpg");
以上是设置存放接收的文件路径和名称;
FileOutputStream fos = new FileOutputStream(file);