基于Socket上传客户端
来源:互联网 发布:手机拍摄软件 编辑:程序博客网 时间:2024/06/07 00:09
/**
*
*/
package com.yb.tcp;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
/**
* @ClassName ClientDemo
* @Description TODO
* @author yanbiao
* @email yanbiao_it@sina.com
* @date 2015年3月4日
*/
public class ClientDemo {
/**
* 客户端上传文件
*
* @Description: TODO
* @param fileName
* 上传文件名称
* @param ipAddress
* 服务端ip地址
* @param port
* 服务端监听端口
* @return boolean 文件上传是否成功
*/
public static boolean upload(String fileName, String ipAddress, int port) {
Socket socket = null;
FileInputStream fis = null;
try {
socket = new Socket(ipAddress, port);
File file = new File(fileName);
fis = new FileInputStream(file);
OutputStream os = socket.getOutputStream();// 获取socket输出流
os.write(file.getName().getBytes());// 向服务端发送上传文件名称
String info = servInfoBack(socket);// 接收服务端返回消息
if (ConstantUtil.STATUS_SUCESS.equals(info)) {// 如服务端创建文件成功,则继续上传文件
byte[] buf = new byte[1024];
int len = 0;
while ((len = fis.read(buf)) != -1) {
os.write(buf, 0, len);
}
socket.shutdownOutput();// 通知服务端客户端数据发送结束
String serverMsg = servInfoBack(socket);
ConstantUtil.print("upload result:" + serverMsg);
} else {
ConstantUtil.print(info);
return false;
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (socket != null) {
try {
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return true;
}
public static boolean downloadFile(String fileName, String ipAddress, int port){
return true;
}
private static String servInfoBack(Socket sock) throws IOException {
InputStream sockIn = sock.getInputStream(); // 定义socket输入流
byte[] bufIn = new byte[1024];
int lenIn = sockIn.read(bufIn); // 将服务端返回的信息写入bufIn字节缓冲区
String info = new String(bufIn, 0, lenIn);
return info;
}
}
*
*/
package com.yb.tcp;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
/**
* @ClassName ClientDemo
* @Description TODO
* @author yanbiao
* @email yanbiao_it@sina.com
* @date 2015年3月4日
*/
public class ClientDemo {
/**
* 客户端上传文件
*
* @Description: TODO
* @param fileName
* 上传文件名称
* @param ipAddress
* 服务端ip地址
* @param port
* 服务端监听端口
* @return boolean 文件上传是否成功
*/
public static boolean upload(String fileName, String ipAddress, int port) {
Socket socket = null;
FileInputStream fis = null;
try {
socket = new Socket(ipAddress, port);
File file = new File(fileName);
fis = new FileInputStream(file);
OutputStream os = socket.getOutputStream();// 获取socket输出流
os.write(file.getName().getBytes());// 向服务端发送上传文件名称
String info = servInfoBack(socket);// 接收服务端返回消息
if (ConstantUtil.STATUS_SUCESS.equals(info)) {// 如服务端创建文件成功,则继续上传文件
byte[] buf = new byte[1024];
int len = 0;
while ((len = fis.read(buf)) != -1) {
os.write(buf, 0, len);
}
socket.shutdownOutput();// 通知服务端客户端数据发送结束
String serverMsg = servInfoBack(socket);
ConstantUtil.print("upload result:" + serverMsg);
} else {
ConstantUtil.print(info);
return false;
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (socket != null) {
try {
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return true;
}
public static boolean downloadFile(String fileName, String ipAddress, int port){
return true;
}
private static String servInfoBack(Socket sock) throws IOException {
InputStream sockIn = sock.getInputStream(); // 定义socket输入流
byte[] bufIn = new byte[1024];
int lenIn = sockIn.read(bufIn); // 将服务端返回的信息写入bufIn字节缓冲区
String info = new String(bufIn, 0, lenIn);
return info;
}
}
0 0
- 基于Socket上传客户端
- Socket客户端上传文件
- java基于TCP协议的Socket客户端文件上传与下载
- C#基于Socket客户端实现
- FTP客户端:上传需要关闭Socket
- Socket基础之客户端(基于UDP)
- Socket基础之客户端(基于UDP)
- 基于Java Socket客户端、服务端聊天雏形
- 基于TCP 的服务器、、客户端(socket)
- 基于LwIP socket的UDP客户端
- 基于LwIP socket的TCP客户端
- 基于netty 的android Socket 聊天室客户端
- 基于UDP的socket 客户端和服务端
- 基于Socket简单的客户端-服务端例子
- 基于TCP的客户端、服务器端socket编程
- 基于QFtp类的上传、下载客户端
- Java Socket编程 - 基于Socket实现HTTP下载客户端
- python socket上传文件的服务端和客户端实现
- String、StringBuffer与StringBuilder之间区别
- go 语言学习历程
- 看好你的门-客户端传数据(3)附录-http信息头说明
- 基于HTML+JS的灵活、可扩展的桌面软件架构
- C/C++内存管理
- 基于Socket上传客户端
- 设计模式-适配器模式
- ubuntu 12.04搭建tftp服务器的安装、设置、调试
- 编程语言的选择原则
- mysql 性能调优
- Spark Streaming容错的改进和零数据丢失
- 路遥短篇小说之《匆匆过客》
- Restrictions HQL运算符对应
- scala 中隐式转换 implicit的应用