收藏 分享(赏)

Socket编程.doc

上传人:myw993772 文档编号:7059324 上传时间:2019-05-04 格式:DOC 页数:3 大小:14.78KB
下载 相关 举报
Socket编程.doc_第1页
第1页 / 共3页
Socket编程.doc_第2页
第2页 / 共3页
Socket编程.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、使用 Socket 编程实现文件上传这是一个基础 Socket 编程练习,由于在实际应用中,不止一个客户端可以上传文件,所以本人根据实际情况,以多线程的形式实现该文件上传功能。开发环境;eclipse。具体源码如下:服务器端;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.io.*;import .*;import java.util.concurrent.*;public class MultiThreadServer private int port=

2、8821;private ServerSocket serverSocket;private ExecutorService executorService;/线程池private final int POOL_SIZE=10;/线程池大小public MultiThreadServer() throws IOExceptionserverSocket=new ServerSocket(port);executorService=Executors.newFixedThreadPool(POOL_SIZE);System.out.println(“服务器已启动 “);public void s

3、ervice()while(true)Socket socket=null;try /接收客户连接,只要客户进行了连接,就会触发accept();从而建立连接socket=serverSocket.accept();executorService.execute(new Handler(socket); catch (Exception e) e.printStackTrace();public static void main(String args) throws IOException new MultiThreadServer().service();class Handler imp

4、lements Runnableprivate Socket socket;private String FilePath=“D:“;public Handler(Socket socket)this.socket=socket;public void run()try System.out.println(“New connection accepted “+socket.getInetAddress()+“:“+socket.getPort();InputStream socketIn=socket.getInputStream();BufferedInputStream BIS=new

5、BufferedInputStream(socketIn);BufferedOutputStream BOS=new BufferedOutputStream(new FileOutputStream(new File(FilePath);int data;while(data=BIS.read()!=-1)BOS.write(data); catch (IOException e) e.printStackTrace();finallytry if(socket!=null)socket.close(); catch (IOException e) e.printStackTrace();客

6、户端:import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStream;import .Socket;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.io.*;public class MultiThreadClient public static void main(String arg

7、s) int numTasks = 10;ExecutorService exec = Executors.newCachedThreadPool();for (int i = 0; i numTasks; i+) exec.execute(createTask(i);/ 文件传输任务private static Runnable createTask(final int taskID) return new Runnable() private Socket socket = null;private int port=8821;File f=new File(“abcd“); /方便起见,

8、假设存在该文件,实际应用中可以适当修改public void run() System.out.println(“Task “ + taskID + “:start“);try socket = new Socket(“localhost“, port);OutputStream socketOut = socket.getOutputStream();BufferedOutputStream BOS=new BufferedOutputStream(socketOut);BufferedInputStream BIS=new BufferedInputStream(new FileInputStream(f);int data;while (data = BIS.read() != -1)BOS.write(data); catch (IOException e) e.printStackTrace();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报