社区
Java
帖子详情
Java设计图形界面程序,在服务器端和客户端传输图片和文件。如果是图片请显示该图片,如果是其他文件,则保存。
sagapo616
2011-11-15 09:45:39
Java设计图形界面程序,在服务器端和客户端传输图片和文件。如果是图片请显示该图片,如果是其他文件,则保存。
求大神给代码……
...全文
477
1
打赏
收藏
Java设计图形界面程序,在服务器端和客户端传输图片和文件。如果是图片请显示该图片,如果是其他文件,则保存。
Java设计图形界面程序,在服务器端和客户端传输图片和文件。如果是图片请显示该图片,如果是其他文件,则保存。 求大神给代码……
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
星辉dj
2011-12-01
打赏
举报
回复
Java基于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 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("Windows")) {
out.writeByte(0x1);
out.flush();
return;
}
if (sendMessage.equals("Unix")) {
out.writeByte(0x2);
out.flush();
return;
}
if (sendMessage.equals("Linux")) {
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 = "localhost";// 设置成服务器IP
private int port = 8821;
private String sendMessage = "Windwos";
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("连接服务器成功!" + "\n");
return true;
} catch (Exception e) {
System.out.print("连接服务器失败!" + "\n");
return false;
}
}
private void sendMessage() {
if (cs == null)
return;
try {
cs.sendMessage(sendMessage);
} catch (Exception e) {
System.out.print("发送消息失败!" + "\n");
}
}
private void getMessage() {
if (cs == null)
return;
DataInputStream inputStream = null;
try {
inputStream = cs.getMessageStream();
} catch (Exception e) {
System.out.print("接收消息缓存错误\n");
return;
}
try {
//本地保存路径,文件名会自动从服务器端继承而来。
String savePath = "E:\\";
int bufferSize = 8192;
byte[] buf = new byte[bufferSize];
int passedlen = 0;
long len=0;
savePath += inputStream.readUTF();
DataOutputStream fileOut = new DataOutputStream(new BufferedOutputStream(new BufferedOutputStream(new FileOutputStream(savePath))));
len = inputStream.readLong();
System.out.println("文件的长度为:" + len + "\n");
System.out.println("开始接收文件!" + "\n");
while (true) {
int read = 0;
if (inputStream != null) {
read = inputStream.read(buf);
}
passedlen += read;
if (read == -1) {
break;
}
//下面进度条本为图形界面的prograssBar做的,这里如果是打文件,可能会重复打印出一些相同的百分比
System.out.println("文件接收了" + (passedlen * 100/ len) + "%\n");
fileOut.write(buf, 0, read);
}
System.out.println("接收完成,文件存为" + savePath + "\n");
fileOut.close();
} catch (Exception e) {
System.out.println("接收消息错误" + "\n");
return;
}
}
public static void main(String arg[]) {
new ClientTest();
}
}
Java
课设对对碰_
JAVA
课程
设计
题目
这篇博客列举了多个
Java
课程
设计
的实践项目,包括简单的计算器、
文件
加密解密、学生成绩管理系统、对对碰游戏、随机圆动画、绘图板、标准化考试系统、Socket
文件
传输
、网络相册、日历记事本和记事本
程序
。这些项目涵盖了GUI界面
设计
、数据库操作、网络编程等多个方面,旨在提升
Java
编程能力。
计算机网络课设题目
java
_
JAVA
课程
设计
题目_百度文库
本文提供了多个
JAVA
课程
设计
题目,包括简单的计算器、
文件
加密解密软件、学生成绩管理系统、对对碰游戏、随机圆动画、绘图板、标准化考试系统、Socket
文件
传输
、网络相册、日历记事本和红色反弹球
程序
。这些项目涵盖了GUI界面
设计
、数据库交互、动画制作、网络编程等多个方面,旨在提升学生的
JAVA
编程能力和实际应用能力。
Java
课设线上聊天室———团队博客
此博客详细介绍了
Java
实现的网络聊天室项目,涉及用户注册登录、私聊群聊、
文件
传输
、多线程并发及服务器管理。重点展示了
客户端
与服务器交互、数据封装与ObjectStream的应用,以及团队分工与代码仓库链接。
socket发送
图片
本文介绍了一个简单的
Java
实现的
客户端
-服务器
文件
传输
系统。该系统包括
客户端
和服务器两端,
客户端
能够向服务器发送
请
求并接收
文件
,而服务器则负责响应
客户端
的
请
求并发送指定
文件
。通过使用DataInputStream和DataOutputStream等类进行数据读写,实现了
文件
的有效
传输
。
黑马
程序
员_
Java
基础_网络编程(下)_24
本文介绍了使用TCP协议实现
图片
上传的功能及并发登录验证过程。
客户端
通过TCP连接上传
图片
到服务器,服务器接收并
保存
图片
;并发登录功能允许
客户端
并发地进行登录尝试,
服务器端
验证用户名的有效性。
Java
51,409
社区成员
86,090
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章