电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

通过Socket发送和接收文件VIP专享VIP免费

通过Socket发送和接收文件_第1页
通过Socket发送和接收文件_第2页
通过Socket发送和接收文件_第3页
这是一个简单的包含发送端和接收端的例子。发送端向接收端发送文件名和文件内容,接收端将收到的文件保存在磁盘上。接收端可以同时接收多个发送端传来的文件,但没有处理文件同名的情况。 这个例子中设计了一个简单的协议。发送的内容是这样的: 文件名长度(4 字节)—文件名—文件内容长度(4 字节)—文件内容。 接收端也按照这个结构进行解析。建议先看 Client 类,再看 Server 类。 view plaincopy to clipboardprint? import java.io.*; import java.net.ServerSocket; import java.net.Socket; /** * 简单的文件发送与接收示例 */ public class FileTrasmission { //程序入口 public static void main(String[] args) throws Exception { int port = 7788; new Server(port, "c:\\save\\").start(); new Client().sendFile("127.0.0.1", port, "c:\\迷失在康熙末年.txt"); } } /** * 接收端。可同时接收多个发送端发来的文件。但如果发来的文件是同名的话那就乱了。 */ class Server { private int listenPort; private String savePath; /** * 构造方法 * * @param listenPort 侦听端口 * @param savePath 接收的文件要保存的路径 * * @throws IOException 如果创建保存路径失败 */ Server(int listenPort, String savePath) throws IOException { this.listenPort = listenPort; this.savePath = savePath; File file = new File(savePath); if (!file.exists() && !file.mkdirs()) { throw new IOException("无法创建文件夹 " + savePath); } } // 开始侦听 public void start() { new ListenThread().start(); } // 网上抄来的,将字节转成 int。b 长度不得小于 4,且只会取前 4 位。 public static int b2i(byte[] b) { int value = 0; for (int i = 0; i < 4; i++) { int shift = (4 - 1 - i) * 8; value += (b[i] & 0x000000FF) << shift; } return value; } /** * 侦听线程 */ private class ListenThread extends Thread { @Override public void run() { try { ServerSocket server = new ServerSocket(listenPort); // 开始循环 while (true) { Socket socket = server.accept(); new HandleThread(socket).start...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部