首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

请教QTcpServer,QTcpSocket的工作过程是怎样的

2012-05-28 
请问QTcpServer,QTcpSocket的工作过程是怎样的在C++ GUI QT4 中那个Trip程序中,incomingconnection传入了

请问QTcpServer,QTcpSocket的工作过程是怎样的
在C++ GUI QT4 中那个Trip程序中,incomingconnection传入了一个socketDescriptor,再新建了一个ClientSocket来处理客户端的链接,它使用传入的socketDescriptor来设置自己的descriptor,这是不是说明真正进行通信的是QTcpServer创建的socket,server返回一个描述符供client使用,client只是使用server创建的socket,而server创建的socket则实际的进行通信,它拥有真正的通信手段。但是在客户端通信也是利用了一个QTcpSocket来进行通信的,如果QTcpSocket不实际的创建一个socket的话,它怎么能通信呢?

初学网络编程,对于socket编程的结构没有概念,望大家知无不言啊。

[解决办法]
QTcpServer仅进行监听,QTcpSocket进行实际的网络连接。socketDescriptor只是一个IO句柄,将一个QTcpSocket绑定到这个句柄上,就可以建立连接。

至于QTcpSocket,你可以把它理解为网卡上的插口,在客户端和服务器端都需要这个。“client只是使用server创建的socket”,这句话不对,两端都需要自己的socket,也不存在谁使用谁的问题。

建议楼主看一下Linux下的网络编程。不用看的太深,只看看socket函数, bind函数,listen函数,accept函数, connect函数的简单用法就行。
[解决办法]
可以参考我以前的一篇blog:
http://xzis.me/2009/01/tcp-communication-with-qt/

热点排行