社区
Java SE
帖子详情
用TCP传输文件
sky123123
2009-03-30 03:22:18
我用TCP编了个聊天软件,想加入文件传输功能,就是在点击传输文件按钮时,对方能够弹出一个对话框是否同意接受。这个功能怎么样实现呢?小弟一时还想不起来啊,不知那个高手肯给予指点迷津啊?感谢了!!!
...全文
345
14
打赏
收藏
用TCP传输文件
我用TCP编了个聊天软件,想加入文件传输功能,就是在点击传输文件按钮时,对方能够弹出一个对话框是否同意接受。这个功能怎么样实现呢?小弟一时还想不起来啊,不知那个高手肯给予指点迷津啊?感谢了!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sky123123
2009-04-03
打赏
举报
回复
在大家的热情帮助下,我文件传输成功了。谢谢大家!!!!
我用的是C/S S/C模型,有一个客户端发送消息,经由服务器转发至每个客户端,所以,我在客户端发送信息的时候,加上本客户端的端口好,再由服务器转发,发至客户端时在将端口号分离出来,然后和自己的端口好比较,如果和自己的端口号相等就不做任何处理,不相等的话,就证明是传输文件的信号,就启动接受文件线程。接着建立,文件传输TCP连接。接着就可以传输文件啦!
最后还要感谢大家的热忱相助。
衷心的表示感谢!!!
sky123123
2009-04-02
打赏
举报
回复
牛仔都很忙啊..
将sendSignle(fs.trueFileName); 方法包装在一个"发送"按钮事件监听器类,在事件发生事调用我上面那段代码,不行么?
[/Quote]
我也做到这步了,
fs.sendSignle(fs.trueFileName); //发送一个信号
fs.startServerThread(); //用线程启动传送文件
这个sendSingle();信号怎么样才能让通过服务器的另外一个客户端受到并响应呢?
就差这一步啦!!!
请多多帮忙啊!!!!
万分感谢!!!!!!!!!!!
chaner2002
2009-04-01
打赏
举报
回复
[Quote=引用 10 楼 sky123123 的回复:]
能不能给出具体的代码啊?????
[/Quote]
牛仔都很忙啊..
将sendSignle(fs.trueFileName); 方法包装在一个"发送"按钮事件监听器类,在事件发生事调用我上面那段代码,不行么?
sky123123
2009-04-01
打赏
举报
回复
没有人愿意回答吗?还是问题太简单了???希望大家多多帮忙啊,俺等了很久啊,现在急用!!!!!!!
sky123123
2009-04-01
打赏
举报
回复
能不能给出具体的代码啊?????
w2010kaoyan
2009-04-01
打赏
举报
回复
学习中!
diggywang
2009-04-01
打赏
举报
回复
我觉得我已经说的很详细了,java中socket默认都是以tcp方式建立连接的,所以你不用管tcp或udp之类的底层协议,只要建立socket连接,就可以read来write去啦!
chaner2002
2009-03-31
打赏
举报
回复
你加入一个按钮,这个按钮注册一个弹出JFileChooser,具体可以这样:
if(e.getActionCommand().equals("上传")){ //e是 Actionevent,"上传"是按钮的标签
JFileChooser fileChooser = new JFileChooser();
int i = fileChooser.showOpenDialog(this.sf);
//sf.jd.setVisible(false);
if(i==JFileChooser.APPROVE_OPTION){
File selectedFile = fileChooser.getSelectedFile();
JTextField tf = new JTextField();
tf.setText(selectedFile.getName());
sf.tf.setText(selectedFile.getAbsolutePath()); //获得文件路径,sf是聊天窗口,是个主类,sf.tf是sf中的一个JTextFiled,你从这儿得到的路径可以在sf.tf中显示,然后"发送"按钮就可以将文件名读进去,再传输到另一方.
}
}
如果没看明白,可以继续问我.
sky123123
2009-03-31
打赏
举报
回复
五楼的大哥说的太对了,我就是按着这个思路进行的,现在最重要的是sendSingle()方法该如何实现,我用的是TCP。多谢了,俺在线等啊!!!!!!!!!
diggywang
2009-03-31
打赏
举报
回复
每个客户机都开一个serversocket,一旦一个客户机触发sendSignle事件,就请求另一个客户机的serversocket并建立连接线程(注意,一定要线程,否则没办法传多个文件),连接建立后由发送方将文件名传送给接受方,接受方收到请求后再显示相应的文件接收对话框,一旦允许接收并选择了存放的位置(发送同意接收信号给发送方),发送方此时开始从socket的outputstream中写入文件,而接受方从socket的inputstream中读取相关数据并写入文件。
sky123123
2009-03-31
打赏
举报
回复
嗯,这点我看明白了,多谢了。我的发送按钮是这样实现的:你请看
private JButton getSendFileButton() {
if (sendFileButton == null) {
sendFileButton = new JButton();
sendFileButton.setUI(new BasicButtonUI());
sendFileButton.setToolTipText("传送文件");
sendFileButton.setIcon(new ImageIcon(getClass().getResource("/sendFile.png")));
sendFileButton.setBackground(new Color(212, 231, 245));
sendFileButton.setBounds(new Rectangle(237, 261, 38, 25));
sendFileButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e) {
if(fs.changefile() == null)
{
//什么也不做
}
else
{
sendSignle(fs.trueFileName); //发送一个信号
fs.startServerThread(); //用线程启动传送文件
}
}
});
sendFileButton.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseExited(java.awt.event.MouseEvent e) {
sendFileButton.setBackground(new Color(212, 231, 245));
}
public void mouseEntered(java.awt.event.MouseEvent e) {
sendFileButton.setBackground(new Color(0, 150, 200));
}
public void mousePressed(java.awt.event.MouseEvent e) {
sendFileButton.setBackground(new Color(212, 231, 255));
}
});
}
return sendFileButton;
}
最关键的问题是:
sendSignle(fs.trueFileName); //发送一个信号
这里出了问题,sendSingle()方法怎么样定义啊,我用的是TCP;其中trueFileName是要传输的文件名。
sky123123
2009-03-30
打赏
举报
回复
我也这样做了,单是文件名怎么发给对方呐,用的是TCP。
chaner2002
2009-03-30
打赏
举报
回复
这个我也做了..
可以这样,先将文件名发送过去,用File类的isFile()进行判断,紧接着进行传输,再用length()方法判别文件长度,不为空则new一个JDialog,JDialog添加
两个JButton,一个"是"一个"否",将JButton注册ActionListener事件监听,点击"是"按钮,用IO开始传输,点击"否"则不进行操作.
程序找不到了..提供下思路.
Python实现
TCP
文件
传输
前几天已经讲过了UDP协议下大
文件
传输
的python实现代码,今天再实现
TCP
协议下大
文件
传输
的python实现代码。
TCP
和UDP的实现过程还是比较不一样的。 实现代码: 服务端: import socket import time s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.bind(('127.0.0.1',9999)...
python socket基于
TCP
的
文件
传输
程序
python socket基于
TCP
的
文件
传输
程序
C/C++用socket实现简单的
TCP
文件
传输
本文主要用于总结学习到的关于socket网络编程的知识以及回顾项目原理等相关内容,进一步加深了对于
TCP
通信与实际项目之间联系的理解,也欢迎各位大佬对于文章中的错误理解进行批评指正以及对进一步完善所需要学习了解的知识原理给出重要建议
网络编程——
TCP
文件
传输
网络编程——
TCP
文件
传输
网络编程
TCP
文件
传输
要求 思路 结果 代码 客户端 服务端 要求- 客户端向服务端发起socket连接,建立数据
传输
通道- 客户端向服务端发送要
传输
的
文件
名称,以’#’字符结尾,服务端逐字符接受,知道接收到‘#’- 客户端向服务端发送
文件
长度,4字节- 客户端向服务端发送
文件
内容 - 服务端接受完
文件
之后,发送“OK”- 客户端接收到“OK”,关闭套接字
python实现简单的
文件
传输
程序-
TCP
layout: post title: “python实现简单的
文件
传输
程序-
TCP
” date: 2019-05-18 description: “一次计网作业,分UDP和
TCP
” tag: python 说明 本程序仅在python3.7.3下测试无错
TCP
因为代码比较短所以直接贴了,程序实现了如下功能: 服务端与单个客户端建立一条
TCP
连接,客户端从服务端的目录下下载指定
文件
...
Java SE
62,622
社区成员
307,255
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章