资源描述
TCP协议上传图片客户端和服务端 TCP服务端1. import java.io.IOException;2. import java.net.ServerSocket;3. import java.net.Socket;4. import java.io.InputStream;5. import java.io.File;6. import java.io.FileOutputStream;7. import java.io.OutputStream;8. import java.io.FileNotFoundException;9. import java.io.IOException;10.11. public class UploadPicServer12. 13. public static void main(String args) throws FileNotFoundException,IOException 14. 15. /创建tcp的socket服务端。16. ServerSocket ss = new ServerSocket(10006);17.18. /获取客户端。19. Socket s = ss.accept();20.21. String ip = s.getInetAddress().getHostAddress();22. System.out.println(ip + .connected);23.24. /读取客户端发来的数据。25. InputStream in = s.getInputStream();26.27. /将读取到的数据存储到一个文件中。28. File dir = new File(c:pic);29. if(!dir.exists()30. dir.mkdirs();31. 32. File file = new File(dir,ip + .bmp);33. FileOutputStream fos = new FileOutputStream(file);34.35. byte buf = new byte1024;36. 37. int len = 0;38.39. while(len = in.read(buf) != -1)40. fos.write(buf,0,len);41. 42.43. /获取socket输出流,将上传成功字样发给客户端。44. OutputStream out = s.getOutputStream();45.46. out.write(上传成功.getBytes();47.48. fos.close();49. s.close();50. ss.close();51. 52. 复制代码 TCP客户端1. import java.net.Socket;2. import java.io.FileInputStream;3. import java.io.OutputStream;4. import java.io.InputStream;5. import java.net.UnknownHostException;6. import java.io.IOException;7. import java.io.FileNotFoundException;8.9. public class UploadPicClient10. 11. public static void main(String args) throws UnknownHostException,IOException,FileNotFoundException12. 13. /1. 创建客户端socket。14. Socket s = new Socket(192.168.1.100,10006);15.16. /2. 读取客户端要上传的图片文件。17. FileInputStream fis = new FileInputStream(c:0.bmp);18.19. /3. 获取socket输出流,将读到图片数据发送给服务端。20. OutputStream out = s.getOutputStream();21.22. byte buf = new byte1024;23.24. int len = 0;25.26. while(len = fis.read(buf) != -1)27. out.write(buf,0,len);28. 29.30. /告诉服务端说:这边的数据发送完毕。让服务端停止读取。31. s.shutdownOutput();32.33. /读取服务端发回的内容。34. InputStream in = s.getInputStream();35. byte bufIn = new byte1024;36.37. int lenIn = in.read(buf);38. String text = new String(buf,0,lenIn);39. System.out.println(text);40.41. fis.close();42. s.close();43. 44. 复制代码 运行结果:
展开阅读全文