找回密码
 立即注册
收起左侧
楼主: yafeilinux

第38篇 网络(八)TCP(二)

63
回复
54248
查看
[复制链接]
累计签到:4 天
连续签到:1 天
2016-8-8 18:01:37 显示全部楼层
yafeilinux 发表于 2016-8-8 17:03
应该是系统问题,程序都是测试过的。

外网的话需要有ip才行的,如果没有就需要使用服务器中转,类似QQ ...

在同一台电脑上运行两个程序 指定外网IP 可以传输文件的,但是把发送程序放在别人的电脑上就传输不了了。。。这是系统问题吗
回复 支持 反对

使用道具 举报

累计签到:1570 天
连续签到:1 天
2016-8-8 17:03:49 显示全部楼层
liushaozhe 发表于 2016-8-8 16:34
楼主请问可以在外网直接传输吗 可以的话要怎么办?

应该是系统问题,程序都是测试过的。

外网的话需要有ip才行的,如果没有就需要使用服务器中转,类似QQ
回复 支持 反对

使用道具 举报

累计签到:4 天
连续签到:1 天
2016-8-8 16:57:23 显示全部楼层
yafeilinux 发表于 2016-8-8 16:36
你用哪个版本系统

windows8.1。。。。。。。。。。。。。。。。。。。。
回复 支持 反对

使用道具 举报

累计签到:4 天
连续签到:1 天
2016-8-8 16:56:49 显示全部楼层
yafeilinux 发表于 2016-8-8 16:36
你用哪个版本系统

win8.1                                            
回复 支持 反对

使用道具 举报

累计签到:2 天
连续签到:1 天
2016-8-8 16:45:40 显示全部楼层
参考学习一下 谢谢!!
回复 支持 反对

使用道具 举报

累计签到:1570 天
连续签到:1 天
2016-8-8 16:36:44 显示全部楼层
满堂花醉 发表于 2016-7-12 20:48
楼主大大,我照着代码敲了一遍,发现最后点击“监听”按钮,tcpReceive显示了要接受的文件名却没传输文件, ...

你用哪个版本系统
回复 支持 反对

使用道具 举报

累计签到:1570 天
连续签到:1 天
2016-8-8 16:36:16 显示全部楼层
liushaozhe 发表于 2016-8-8 16:34
楼主请问可以在外网直接传输吗 可以的话要怎么办?

你那里什么环境?

点评

win8.1  发表于 2016-8-8 16:53
回复 支持 反对

使用道具 举报

累计签到:4 天
连续签到:1 天
2016-8-8 16:34:48 显示全部楼层
楼主请问可以在外网直接传输吗 可以的话要怎么办?:):):):):)
回复 支持 反对

使用道具 举报

累计签到:4 天
连续签到:1 天
2016-8-8 12:35:48 显示全部楼层
楼主,我试了下,可以完成文件传输 但是只能传输一次,第二次传输的时候就会"Connection refused",该怎么解决
回复 支持 反对

使用道具 举报

累计签到:4 天
连续签到:1 天
2016-8-7 22:27:57 显示全部楼层
tcpReceiver中,将totalBytes = 0;bytesReceived = 0;fileNameSize = 0;初始化拿到start()中,可以传多个文件
回复 支持 反对

使用道具 举报

累计签到:11 天
连续签到:1 天
2016-7-12 20:48:15 显示全部楼层
楼主大大,我照着代码敲了一遍,发现最后点击“监听”按钮,tcpReceive显示了要接受的文件名却没传输文件,百度了一下说是readyread()函数在windows环境下的无法接收信号的问题,请问有什么解决方案吗?
回复 支持 反对

使用道具 举报

累计签到:1 天
连续签到:1 天
2016-5-23 16:18:57 显示全部楼层
想做一个tcp服务程序,参考一下
回复 支持 反对

使用道具 举报

累计签到:1570 天
连续签到:1 天
2016-4-4 16:54:33 显示全部楼层
animal 发表于 2016-4-3 23:34
//返回outBolock的开始,用实际的大小信息代替两个qint64(0)空间
    sendOut

实际的大小信息 指的就是 前面提到的“总大小信息”和“文件名大小信息”,因为前面只是占位,现在有实际数据了,所以叫“实际的大小信息”
回复 支持 反对

使用道具 举报

累计签到:1570 天
连续签到:1 天
2016-4-4 16:52:25 显示全部楼层
animal 发表于 2016-4-3 23:18
QString currentFileName = fileName.right(fileName.size()
- fileName.lastIndexOf('/')-1);
这句是什么 ...

建议用一个实际文件测试下效果,然后研究下就明白了。
回复 支持 反对

使用道具 举报

累计签到:10 天
连续签到:1 天
2016-4-3 23:34:07 显示全部楼层
  //返回outBolock的开始,用实际的大小信息代替两个qint64(0)空间
    sendOut<<totalBytes<<qint64((outBlock.size() - sizeof(qint64)*2));

这里应该是用总大小和实际大小代替两个qint64(0)空间,
而不只是用实际的大小信息代替两个qint64(0)吧

回复 支持 反对

使用道具 举报

累计签到:10 天
连续签到:1 天
2016-4-3 23:18:46 显示全部楼层
QString currentFileName = fileName.right(fileName.size()
- fileName.lastIndexOf('/')-1);
这句是什么意思?

我在助手里查了right 看到下面这个例子
Returns a substring that contains the n rightmost characters of the string.

The entire string is returned if n is greater than size() or less than zero.

QString x = "Pineapple";
QString y = x.right(5);      // y == "apple"

还是没理解
回复 支持 反对

使用道具 举报

累计签到:5 天
连续签到:1 天
2016-3-16 21:34:02 显示全部楼层
问楼主大神一个问题, 把bytesWritten信号和updateClientProgress槽链接在一起。 在updateClientProgress里面调用 write函数触发 bytesWritten信号,但我在帮助文档里看到bytesWritten信号不能被递归调用,也就是说在不能被它自己引起的槽函数触发。不知道是不是我理解错误了。
回复 支持 反对

使用道具 举报

累计签到:1570 天
连续签到:1 天
2015-9-14 10:29:31 显示全部楼层
yanshipeng1205 发表于 2015-9-13 22:00
我想问下为什么要把他分为几块来发送,分成的块的大小有什么讲究么?
我直接一起发送过去不行么,还是一起 ...

这个可以看下tcp协议。其实,从使用软件角度来看就是一起发送过去的。
回复 支持 反对

使用道具 举报

尚未签到

2015-9-13 22:00:42 显示全部楼层
我想问下为什么要把他分为几块来发送,分成的块的大小有什么讲究么?
我直接一起发送过去不行么,还是一起发送进度条就没法弄了
回复 支持 反对

使用道具 举报

累计签到:1570 天
连续签到:1 天
2015-8-24 22:02:27 显示全部楼层
Qt开心果 发表于 2015-8-23 13:47
请问楼主,如何将一个界面类中的成员tcpsock对象传到另一个界面类

可以尝试用信号槽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了