yafeilinux 发表于 2014-5-13 22:57:50

wang2945 发表于 2014-5-5 22:27 static/image/common/back.gif
想请问一下 tcp 客户端接收显示我用了其它服务端的软件进行发送,客户端只能够触发connect但是无法得到数 ...

需要知道服务器端发过来的数据流格式。

yafeilinux 发表于 2014-5-13 22:58:49

暗黑圣堂 发表于 2014-5-13 21:41 static/image/common/back.gif
在构造函数里使用listen函数程序不会阻塞在那里吗?还有就是我想请问实现不同机器之间的通信,HostAdress怎 ...

不会阻塞,这个没有在IU线程中。局域网里面直接使用IP地址即可。

yafeilinux 发表于 2014-5-13 22:59:21

Qt新手 发表于 2014-5-4 21:38 static/image/common/back.gif
请问 怎么在客户端给服务器端发送数据呢?

接着往后看吧,这个问题自己应该可以解决。

暗黑圣堂 发表于 2014-5-14 09:43:15

yafeilinux 发表于 2014-5-13 22:58 static/image/common/back.gif
不会阻塞,这个没有在IU线程中。局域网里面直接使用IP地址即可。

那主机程序中的HostAddress如果不想配置成Any要怎么配置?

zhangqt 发表于 2014-5-15 22:57:21

楼主辛苦了。谢谢分享。:D

yafeilinux 发表于 2014-5-20 22:38:05

暗黑圣堂 发表于 2014-5-14 09:43 static/image/common/back.gif
那主机程序中的HostAddress如果不想配置成Any要怎么配置?

要实现什么功能?

wcl19870102 发表于 2014-7-11 11:51:24

if(blockSize==0) //如果是刚开始接收数据

    {

       //判断接收的数据是否有两字节,也就是文件的大小信息

       //如果有则保存到blockSize变量中,没有则返回,继续接收数据

       if(tcpSocket->bytesAvailable() < (int)sizeof(quint16)) return;

       in >> blockSize;

    }这段我不太明白,Server 端是一次性Write 数据到 socket, Client 端开始接收数据时,先判断大小是否为0,若为0 ,为什么还去判断读到的字节数?

yafeilinux 发表于 2014-7-11 14:02:34

wcl19870102 发表于 2014-7-11 11:51 static/image/common/back.gif
这段我不太明白,Server 端是一次性Write 数据到 socket, Client 端开始接收数据时,先判断大小是否为0,若 ...

这个操作是要读取数据的前两个字节。

因为在数据的前两个字节保存的是整个数据的大小信息,这里先提取了这个大小信息。

wcl19870102 发表于 2014-7-14 13:43:04

yafeilinux 发表于 2014-7-11 14:02 static/image/common/back.gif
这个操作是要读取数据的前两个字节。

因为在数据的前两个字节保存的是整个数据的大小信息,这里先提取了 ...

blocksize == 0 表示当前没有收到数据,是否意味着Client 端还未收到任何数据?那么此时读取socket 中的前2个字节信息不是都为空吗?

yafeilinux 发表于 2014-7-16 22:11:20

wcl19870102 发表于 2014-7-14 13:43 static/image/common/back.gif
blocksize == 0 表示当前没有收到数据,是否意味着Client 端还未收到任何数据?那么此时读取socket 中的 ...

下面不是还有一个判断吗:

if(tcpSocket->bytesAvailable() < (int)sizeof(quint16)) return;

拖布鞋 发表于 2014-9-25 21:42:20

亚飞老师!
   我是按帖子一步步做出来的, 检查过没有错误。
   为什么连接不上呢?
   在客户端程序上出现"Connection refused" 错误提示。
   C:\Users\shaofengli\Desktop

yafeilinux 发表于 2014-9-25 23:02:05

拖布鞋 发表于 2014-9-25 21:42 static/image/common/back.gif
亚飞老师!
   我是按帖子一步步做出来的, 检查过没有错误。
   为什么连接不上呢?


你下载源码试试。

拖布鞋 发表于 2014-9-26 10:50:07

yafeilinux 发表于 2014-9-25 23:02 static/image/common/back.gif
你下载源码试试。

谢谢亚飞老师,
下载源码后问题解决了。
最后根据源码去检查才发现竟然还是自己代码写错了。漏掉了服务器监视主机,6666端口的那个程序。
哎,, 说来惭愧,检查了几遍都没有检查出来。
另外我还有两个问题:
1:您这有没有关于调试的教程,知道调试的话,这个问题估计自己都没发现。
2:为什么tcp连接的时候这么慢,要等好几秒才能收到信息。这还是本机连接没通过网络呢!

yafeilinux 发表于 2014-9-27 21:10:39

拖布鞋 发表于 2014-9-26 10:50 static/image/common/back.gif
谢谢亚飞老师,
下载源码后问题解决了。
最后根据源码去检查才发现竟然还是自己代码写错了。漏掉了服务器 ...

调试可以使用debug()进行,根据大概的出错位置来输出信息,然后判断并找出具体问题。调试完全需要自己的经验,这个需要积累的,看教程帮助不大,因为要具体问题具体分析。

连接慢,这个不会吧,当时没有感觉到啊。

shasidaran 发表于 2014-11-25 18:44:07


      按帖子一步步来的,同一台电脑上的客户端与服务器端已经可以连接,但放在两台电脑上连接失败,出现"Connection refused"。

      win7客户端,winxp服务器端, 两电脑已连接同一个路由器,防火墙和360均关掉了,且互相可以ping通,但连接不上。请问哪里还可能出现问题?:)

yafeilinux 发表于 2014-12-4 11:58:22

shasidaran 发表于 2014-11-25 18:44 static/image/common/back.gif
按帖子一步步来的,同一台电脑上的客户端与服务器端已经可以连接,但放在两台电脑上连接失败,出现" ...

指定IP试试。

侠隐 发表于 2015-2-27 23:14:53

老师,你好。
我用了你这个程序,服务端放在我电脑,客户端放在连了外网的电脑(跟我电脑连的网不一样),无法连接,客户端已经指定了我电脑的ip和端口号,我还在路由器上设置了虚拟服务器,保证外网访问路由网络的ip时直接映射到我电脑上,我知道不是程序的问题,就想问一下怎样才能让外网的客户端可以连接上我的服务端?@yafeilinux

yafeilinux 发表于 2015-3-4 12:03:00

侠隐 发表于 2015-2-27 23:14 static/image/common/back.gif
老师,你好。
我用了你这个程序,服务端放在我电脑,客户端放在连了外网的电脑(跟我电脑连的网不一样), ...

那样需要你将自己的机子设置为服务器。

一般的实现方式是用网络服务器作为中转站实现的,类似于QQ

kmxtye 发表于 2015-7-18 13:23:31

shasidaran 发表于 2014-11-25 18:44 static/image/common/back.gif
按帖子一步步来的,同一台电脑上的客户端与服务器端已经可以连接,但放在两台电脑上连接失败,出现" ...

你好,请问你后来这个问题解决没有?
我现在也碰到同样的问题

kmxtye 发表于 2015-7-18 13:25:49

我把服务器端放在了开发板
客户端在PC
开发板和PC在同一个局域网内
在PC端ping开发板的IP可以ping通
但是无法通信
不知道问题出在哪里了
页: 1 [2] 3 4
查看完整版本: 第37篇 网络(七)TCP(一)