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

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

63
回复
29907
查看
[复制链接]
累计签到:794 天
连续签到:4 天
2014-7-11 11:44:59 显示全部楼层
Raincchina 发表于 2014-7-11 11:11
也就是说如果我使用绑定的话,就不需要信号槽关联了?那可以怎么实现呢

必须使用信号和槽啊。
回复 支持 反对

使用道具 举报

累计签到:6 天
连续签到:1 天
2014-10-6 14:58:15 显示全部楼层
VC2008 加QT4 的情况下
出了点小状况
问题调试中
谢谢分享
回复 支持 反对

使用道具 举报

累计签到:1 天
连续签到:1 天
2015-7-16 10:42:51 显示全部楼层
很好的教程,在尝试TCP的长连接下发送数据。
回复 支持 反对

使用道具 举报

尚未签到

2015-8-23 13:47:17 显示全部楼层
请问楼主,如何将一个界面类中的成员tcpsock对象传到另一个界面类
回复 支持 反对

使用道具 举报

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

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

使用道具 举报

尚未签到

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

使用道具 举报

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

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

使用道具 举报

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

使用道具 举报

累计签到: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"

还是没理解
回复 支持 反对

使用道具 举报

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

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

回复 支持 反对

使用道具 举报

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

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

使用道具 举报

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

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

你那里什么环境?

点评

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

使用道具 举报

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

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

使用道具 举报

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

使用道具 举报

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