---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
客户端:
1、客户端首先建立socket服务
2、FileInputStream关联图片文件
3.通过socket获取文件输出流,上传到服务端并通过客户端的shutdownOutput()方法通知服务端数据上传完成
4、通过socket获取文件输入流,获取服务端发送过来的消息
服务端:
1、建立ServerSocket服务
2、通过Socket cs = ss.accept();循环接收客服端请求
3、建立线程,把服务端拿到的客服端传进方法
4、FileOutputStream关联输出文件
5、通过socket拿到InputStream,循环读写客服端上传的文件
6、通过socket拿到OutputStream,通知告诉客户端文件上传成功
7、关闭流
具体代码如下:
客户端:
public class TCP_UploadClient {
/**
*TCP上传图片文件,多个客户端可同时想一个服务端上传文件
*客户端
*/
public static void main(String[] args) throws Exception{
Socket cs = new Socket("192.168.2.5", 10001);
FileInputStream filein = new FileInputStream("F:\\生活\\图片\\860OKMZO\\IMG_0683.JPG");
OutputStream sout = cs.getOutputStream();
byte[] buf = new byte[1024];
int len=0;
while((len=filein.read(buf))!=-1){
sout.write(buf, 0, len);
sout.flush();
}
cs.shutdownOutput();//通知服务端数据传输完成,结束标记
byte[] sinbuf = new byte[1024];
InputStream sin = cs.getInputStream();
int count = sin.read(sinbuf);
System.out.println(new String(sinbuf, 0, count));
filein.close();
cs.close();
}
}
服务端:
public class TCP_UploadService {
public static void main(String[] args) throws Exception{
ServerSocket ss = new ServerSocket(10001);
while(true){
Socket cs = ss.accept();
new Thread(new ThreadService(cs)).start();
}
//ss.close();
}
}
class ThreadService implements Runnable{
private Socket cs;
ThreadService(Socket cs){
this.cs = cs;
}
public void run() {
String ip = cs.getInetAddress().getHostAddress();
int Porte = cs.getPort();
System.out.println("ip为:"+ip+"端口为:"+Porte+"已连接");
int count=1;
try {
File file = new File("D://"+ip+"("+(count++)+")"+".jpg");
while(file.exists()){
file = new File("D://"+ip+"("+(count++)+")"+".jpg");
}
FileOutputStream fileout = new FileOutputStream(file);
OutputStream sout = cs.getOutputStream();
InputStream sin = cs.getInputStream();
byte[] buf = new byte[1024];
int len=0;
while((len=sin.read(buf))!=-1){
fileout.write(buf, 0, len);
fileout.flush();
}
sout.write("上传成功".getBytes());
sout.flush();
fileout.close();
//cs.close();
} catch (Exception e) {
throw new RuntimeException("服务端出现异常");
}
}
}
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------