博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单的传输文件范例
阅读量:7260 次
发布时间:2019-06-29

本文共 1949 字,大约阅读时间需要 6 分钟。

package j2se.core.net.tcp.file;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

/**

* 简单的传输文件范例(接受端)
*
*/
public class Server {

public static void main(String[] args) throws IOException {

// 在8888端口创建一个 ServerSocket
ServerSocket server = new ServerSocket(8888);
// 循环等待客户的连接
while (true) {
// 主线程会一直阻塞到客户连接的传入
Socket socket;
try {
socket = server.accept();
BufferedOutputStream output = new BufferedOutputStream(
new FileOutputStream(
new File(socket.getPort() + ".tmp")));
byte[] data = new byte[1024];
while (true) {

int i = socket.getInputStream().read(data);

if (i == -1)
break;
output.write(data, 0, i);
}

output.close();

socket.close();
} catch (IOException e) {
e.printStackTrace();
}

}

}

}

 

package j2se.core.net.tcp.file;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;

/**

* 简单的传输文件范例(发送端)
*
*/
public class Client {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);

String ip = "127.0.0.1";

int port = 8888;

System.out.println("请输入文件名:");

String s = scan.nextLine();

try {

Socket socket = new Socket(ip, port);
BufferedOutputStream output = new BufferedOutputStream(socket
.getOutputStream());
BufferedInputStream input = new BufferedInputStream(
new FileInputStream(new File(s)));
try {
byte[] data = new byte[1024];
while (true) {
int i = input.read(data);
if (i == -1)
break;
output.write(data, 0, i);
}
output.flush();
} catch (Exception e) {
// 由于服务器主动断连接,所以会出现异常
} finally {
output.close();
input.close();
socket.close();
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

}

}

 

转载于:https://www.cnblogs.com/angel512/p/5868146.html

你可能感兴趣的文章
(一)线程的发展历史
查看>>
为NEO-GUI 添加插件系统
查看>>
TBSSQL 的那些事 | TiDB Hackathon 2018 优秀项目分享
查看>>
手机秒变IoT设备?——巧妙利用阿里云物联网平台
查看>>
使用truffle开发以太坊Dapp
查看>>
【Leetcode刷题】第 35 题:Search Insert Position 搜索插入位置——解题篇
查看>>
AliOS Things 声源定位应用演示
查看>>
揭开React中server-side rending的神秘面纱
查看>>
《JavaScript高级程序设计》读书笔记
查看>>
python大佬养成计划----paramiko实现SSH
查看>>
Python以太坊区块链交互将数据存入数据库
查看>>
通过简单瘦身,解决Dataworks 10M文件限制问题
查看>>
[译]执行上下文、作用域链和JS内部机制
查看>>
JavaScript Dates 终极指南
查看>>
【跃迁之路】【540天】刻意练习系列299(2018.07.30)
查看>>
在Vmware中安装Ubuntu desktop
查看>>
【Java猫说】构建战舰类控制台游戏
查看>>
ElasticSearch 5.5 DSL搜索
查看>>
【刷算法】一棵树是否是另一棵树的子结构
查看>>
浅谈Angular Cli Schematics
查看>>