社区
Qt
帖子详情
QTcp通信的问题。
刀刀亮
2011-11-25 09:08:37
我想做一个监控的东西,在处理通信这一块我想用Socket。
废话不说了,上问题:
1.我把监控端做服务端,被监控端做客户端,然后客户端有多个,我如何才能在服务端确定是哪个客户端发来的数据?
...全文
604
13
打赏
收藏
QTcp通信的问题。
我想做一个监控的东西,在处理通信这一块我想用Socket。 废话不说了,上问题: 1.我把监控端做服务端,被监控端做客户端,然后客户端有多个,我如何才能在服务端确定是哪个客户端发来的数据?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ccaaiigg
2011-11-25
打赏
举报
回复
我插,用几个字节来标志是哪个客户端发过来的
xiachm
2011-11-25
打赏
举报
回复
看看线程中的代码,在建立连接成功后,Debug一下peerAddress的输出,如果你使用不同的机器来连接服务器,它的输出肯定是不一样的呀。
刀刀亮
2011-11-25
打赏
举报
回复
[Quote=引用 4 楼 xiachm 的回复:]
在帮助文档中找到,QTcpSocket,在See also里面找到Threaded Fortune Server Example
代码非常少,非常简单。虽然里面没有直接出现peerAddress,但我相信你看完后就知道应该把它放哪里了。
[/Quote]
你好,我把手册里的例子看完了,它在服务端对每一个连接新建一个线程来进行处理连接。可是我还是有点犯晕,不知道怎么判断是哪个客户端连接发来的数据,根据进程ID?还是根据什么啊?我在服务端要实现的是,对每一个客户端发来的数据分别存储,然后进行分析处理。能给点意见吗?谢谢……麻烦了
xiachm
2011-11-25
打赏
举报
回复
[Quote=引用 3 楼 zqlee1216 的回复:]
服务器端接收socket的client指针,用过QStringList 来就来存储这些指针, 如:
QStringList clients; // 定义在.h文件
//新client登记。
QTcpSocket *client = new QTcpSocket(this);
client->setSocketDescriptor(socketfd);
clients.inser……
[/Quote]
天哪,这都是什么!
你最好也去帮助文档中找到QTcpSocket,在See also里面找到Threaded Fortune Server Example
xiachm
2011-11-25
打赏
举报
回复
在帮助文档中找到,QTcpSocket,在See also里面找到Threaded Fortune Server Example
代码非常少,非常简单。虽然里面没有直接出现peerAddress,但我相信你看完后就知道应该把它放哪里了。
zqlee1216
2011-11-25
打赏
举报
回复
服务器端接收socket的client指针,用过QStringList 来就来存储这些指针, 如:
QStringList clients; // 定义在.h文件
//新client登记。
QTcpSocket *client = new QTcpSocket(this);
client->setSocketDescriptor(socketfd);
clients.insert(client);
//接收某个客户端
QTcpSocket *client = (QTcpSocket*)sender();
这个client可以在clients中找到。
刀刀亮
2011-11-25
打赏
举报
回复
[Quote=引用 1 楼 xiachm 的回复:]
QAbstractSocket::peerAddress()
[/Quote]
可否的详细点,麻烦了……
xiachm
2011-11-25
打赏
举报
回复
QAbstractSocket::peerAddress()
刀刀亮
2011-11-25
打赏
举报
回复
[Quote=引用 12 楼 xiachm 的回复:]
老兄,TCP是有连接的,系统会自动把收到的数据存放到所在连接的缓冲区里,不用你管。就算你在一个多线程环境里也会确保连接间各自独立。
你别光看代码,要动手写一写。
[/Quote]
教训的即是,本来就晕乎,易感冒就更晕乎了。谢谢前辈提醒……
敲代码去……结贴了
xiachm
2011-11-25
打赏
举报
回复
老兄,TCP是有连接的,系统会自动把收到的数据存放到所在连接的缓冲区里,不用你管。就算你在一个多线程环境里也会确保连接间各自独立。
你别光看代码,要动手写一写。
刀刀亮
2011-11-25
打赏
举报
回复
[Quote=引用 10 楼 ccaaiigg 的回复:]
客户端发送完了之后再发送一个标识发送完毕的信息,服务端收到这个标志确认之后才处理吧引用 9 楼 xiaoliang_1 的回复:
引用 8 楼 ccaaiigg 的回复:
我插,用几个字节来标志是哪个客户端发过来的
当其中一个客户端的报文没有发完中间又有另一个客户端发一些报文,怎么办?如何解析?……
[/Quote]
在第一个客户端发送数据的过程中,第二个客户端也在发送数据的情况呢?不能不开始标记位和结束标记位都设置成独一无二的吧。所以还是很纠结呢
ccaaiigg
2011-11-25
打赏
举报
回复
客户端发送完了之后再发送一个标识发送完毕的信息,服务端收到这个标志确认之后才处理吧[Quote=引用 9 楼 xiaoliang_1 的回复:]
引用 8 楼 ccaaiigg 的回复:
我插,用几个字节来标志是哪个客户端发过来的
当其中一个客户端的报文没有发完中间又有另一个客户端发一些报文,怎么办?如何解析?……
[/Quote]
刀刀亮
2011-11-25
打赏
举报
回复
[Quote=引用 8 楼 ccaaiigg 的回复:]
我插,用几个字节来标志是哪个客户端发过来的
[/Quote]
当其中一个客户端的报文没有发完中间又有另一个客户端发一些报文,怎么办?如何解析?……
QT
cp
服务端与客户端通讯示例
写了一个简单的
Qt
T
cp
服务端与客户端的通讯示例,便于记忆。服务端和客户端是一体的,主要是用两个类实现,支持多个客户端同时连接服务端端。
QT
CP
.zip
QT
CP
Server
QT
CP
Client 最新实例
QT
中可以通过T
CP
协议让服务器和客户端之间行
通信
。所以下面我就围绕服务器和客户端来写。 这是我们写服务器和客户端的具体流程: A、服务器: 1.创建
QT
cp
Server对象 2.启动服务器(监听)调用成员方法listen...
Qt
cp
简单
通信
初学
Qt
,分享一个简单的
通信
实例,我也不知道要写啥子。
QT
CP
客户端与服务端的实现
用
Qt
实现了T
CP
通信
,内含客户端及服务端的demo,可实现数据的收发及显示。
08_
QT
cp
.rar
qt
中的t
cp
通信
实现,实现客户端和服务器端双向传输。
Qt
16,201
社区成员
26,591
社区内容
发帖
与我相关
我的任务
Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
复制链接
扫一扫
分享
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章