下载此文档

Java基于Socket文件传输示例2007(An-Beer 工作室).doc


文档分类:IT计算机 | 页数:约15页 举报非法文档有奖
1/15
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/15 下载此文档
文档列表 文档介绍
Java基于Socket文件传输示例2007-10-15 来自:lizhe1985  [收藏到我的网摘]
来源:诗特林-sterning - BlogJava
最近需要进行网络传输大文件,于是对基于socket的文件传输作了一个初步的了解。在一位网友提供的程序基础上,俺进行了一些加工,采用了缓冲输入/输出流来包装输出流,再采用数据输入/输出输出流进行包装,加快传输的速度。废话少说,先来看服务器端的程序。

package sterning;
import ;
import ;
import ;
import ;
import ;
import .ServerSocket;
import .Socket;
public class ServerTest {
int port = 8821;
void start() {
Socket s = null;
try {
ServerSocket ss = new ServerSocket(port);
while (true) {
// 选择进行传输的文件
String filePath = "D:\\";
File fi = new File(filePath);
("文件长度:" + (int) ());
// public Socket accept() throws
// IOException侦听并接受到此套接字的连接。此方法在进行连接之前一直阻塞。
s = ();
("建立socket链接");
DataInputStream dis = new DataInputStream(new BufferedInputStream(()));
();
DataInputStream fis = new DataInputStream(new BufferedInputStream(new FileInputStream(filePath)));
DataOutputStream ps = new DataOutputStream(());
//将文件名及长度传给客户端。这里要真正适用所有平台,例如中文名的处理,还需要加工,具体可以参见Think In Java 4th里有现成的代码。
(());
();
((long) ());
();
int bufferSize = 8192;
byte[] buf = new byte[bufferSize];
while (true) {
int read = 0;
if (fis != null) {
read = (buf);
}
if (read == -1) {
break;
}
(buf, 0, read);
}
();
// 注意关闭socket链接哦,不然客户端会等待server的数据过来,
// 直到socket超时,导致数据不完整。
();
();
("文件传输完成");
}
} catch (Exception e) {
();
}
}
public static void main(String arg[]) {
new ServerTest().start();
}
}

package sterning;
import .*;
import .*;
public class ClientSocket {
private String ip;
private int port;
private Socket socket = null;
DataOutputStream out = null;
DataInputStream getMessage

Java基于Socket文件传输示例2007(An-Beer 工作室) 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数15
  • 收藏数0 收藏
  • 顶次数0
  • 上传人mh900965
  • 文件大小30 KB
  • 时间2017-12-20