- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《Java基于Socket文件传输示例2016(An-Beer_工作室)》.doc
Java基于Socket文件传输示例2007-10-15 来自:lizhe1985??[收藏到我的网摘]
来源:诗特林-sterning - BlogJava 最近需要进行网络传输大文件,于是对基于socket的文件传输作了一个初步的了解。在一位网友提供的程序基础上,俺进行了一些加工,采用了缓冲输入/输出流来包装输出流,再采用数据输入/输出输出流进行包装,加快传输的速度。废话少说,先来看服务器端的程序。1.服务器端package sterning; import java.io.BufferedInputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.net.ServerSocket; import java.net.Socket; public class ServerTest {int port = 8821; void start() {Socket s = null; try {ServerSocket ss = new ServerSocket(port); while (true) {// 选择进行传输的文件String filePath = D:\\lib.rar; File fi = new File(filePath); System.out.println(文件长度: + (int) fi.length()); // public Socket accept() throws// IOException侦听并接受到此套接字的连接。此方法在进行连接之前一直阻塞。s = ss.accept(); System.out.println(建立socket链接); DataInputStream dis = new DataInputStream(new BufferedInputStream(s.getInputStream())); dis.readByte(); DataInputStream fis = new DataInputStream(new BufferedInputStream(new FileInputStream(filePath))); DataOutputStream ps = new DataOutputStream(s.getOutputStream()); //将文件名及长度传给客户端。这里要真正适用所有平台,例如中文名的处理,还需要加工,具体可以参见Think In Java 4th里有现成的代码。ps.writeUTF(fi.getName()); ps.flush(); ps.writeLong((long) fi.length()); ps.flush(); int bufferSize = 8192; byte[] buf = new byte[bufferSize]; while (true) {int read = 0; if (fis != null) {read = fis.read(buf); }if (read == -1) {break; }ps.write(buf, 0, read); }ps.flush(); // 注意关闭socket链接哦,不然客户端会等待server的数据过来,// 直到socket超时,导致数据不完整。 fis.close(); s.close(); System.out.println(文件传输完成); }} catch (Exception e) {e.printStackTrace(); }}public static void main(String arg[]) {new ServerTest().start(); }}2.socket的Util辅助类package sterning; import java.net.*; import java.io.*; public class ClientSocket {private String ip; private int port; private Socket socket = null; DataOutputStream out = null; DataInputStream getMessageStream = null; public ClientS
您可能关注的文档
- 《International Trade and Factor Mobility》.pdf
- 《International trade and labor–demand elasticities》.pdf
- 《International Trade in Services Lecture PPT》.pdf
- 《International Trade11》.ppt
- 《international trade》.doc
- 《International_Trade_and_Factor_Mobility》.doc
- 《International_Trade_Law》.pdf
- 《Intra-industry trade and the demand for child labor》.pdf
- 《intravascular ultrasound》.pdf
- 《Intro to Int Trade》.ppt
文档评论(0)