请问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/