77范文网 - 专业文章范例文档资料分享平台

文件传输(基于SOCKET编程)

来源:网络收集 时间:2018-12-22 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

服务器端:

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 = \

File fi = new File(filePath);

System.out.println(\文件长度:\

// 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.sooket 的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 ClientSocket(String ip, int port) { this.ip = ip; this.port = port; }

/** *//**

* 创建socket连接 *

* @throws Exception * exception

*/

public void CreateConnection() throws Exception { try {

socket = new Socket(ip, port); } catch (Exception e) { e.printStackTrace(); if (socket != null) socket.close(); throw e; } finally { } }

public void sendMessage(String sendMessage) throws Exception { try {

out = new DataOutputStream(socket.getOutputStream()); if (sendMessage.equals(\out.writeByte(0x1); out.flush(); return;

}

if (sendMessage.equals(\out.writeByte(0x2); out.flush(); return; }

if (sendMessage.equals(\out.writeByte(0x3); out.flush(); } else {

out.writeUTF(sendMessage); out.flush(); }

} catch (Exception e) { e.printStackTrace(); if (out != null) out.close(); throw e; } finally { } }

public DataInputStream getMessageStream() throws Exception { try {

getMessageStream = new DataInputStream(new BufferedInputStream( socket.getInputStream())); return getMessageStream; } catch (Exception e) { e.printStackTrace(); if (getMessageStream != null) getMessageStream.close(); throw e; } finally { } }

public void shutDownConnection() { try {

if (out != null) out.close();

if (getMessageStream != null) getMessageStream.close(); if (socket != null) socket.close(); } catch (Exception e) { }

} }

3.客户端: package sterning;

import java.io.BufferedOutputStream; import java.io.DataInputStream;

import java.io.DataOutputStream; import java.io.FileOutputStream;

public class ClientTest {

private ClientSocket cs = null;

private String ip = \设置成服务器IP

private int port = 8821;

private String sendMessage = \

public ClientTest() { try {

if (createConnection()) { sendMessage(); getMessage(); }

} catch (Exception ex) { ex.printStackTrace();

} }

private boolean createConnection() { cs = new ClientSocket(ip, port); try {

cs.CreateConnection();

System.out.print(\连接服务器成功!\ return true;

} catch (Exception e) {

System.out.print(\连接服务器失败!\ return false; } }

private void sendMessage() { if (cs == null) return; try {

cs.sendMessage(sendMessage); } catch (Exception e) {

System.out.print(\发送消息失败!\

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库文件传输(基于SOCKET编程)在线全文阅读。

文件传输(基于SOCKET编程).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/383945.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: