QTcpServer简单用法
来源:互联网 发布:软件开发工作总结范文 编辑:程序博客网 时间:2024/06/06 02:57
我们都知道TCP是面向流的,连接的可靠传输协议。QTcpServer就是基于TCP协议的服务端。它调用listen() 方法进行监听客户端的连接,建立连接之后便可以进行通信。以下是简单的demo。
结果截图
服务器代码
class TCPServer: public QObject{Q_OBJECTpublic:TCPServer(QObject *parent = NULL);~TCPServer();void star();void close();protected slots:void newConnectSlot();void showReceiptMessageSlot();private:QTcpServer *m_pServer;};
TCPServer::TCPServer(QObject *parent /* = NULL */):QObject(parent){}TCPServer::~TCPServer(){}void TCPServer::star(){m_pServer = new QTcpServer();m_pServer->listen(QHostAddress::Any,8888);connect(m_pServer,SIGNAL(newConnection ()),this,SLOT(newConnectSlot()));cout<<"Server Running ......"<<endl;}void TCPServer::close(){m_pServer->close();}void TCPServer::newConnectSlot(){QTcpSocket *pSocket = m_pServer->nextPendingConnection();m_SocketVec.push_back(pSocket);connect(pSocket,SIGNAL(readyRead()),this,SLOT(showReceiptMessageSlot()));}void TCPServer::showReceiptMessageSlot(){QTcpSocket *pSenderSocket = qobject_cast<QTcpSocket*>(sender());QByteArray mesArray = pSenderSocket->readAll();string strMes(mesArray);std::cout<<strMes<<endl;pSenderSocket->write("hi,welcome..."); //回发给客户端的消息}客户端代码
class Client : public QDialog{Q_OBJECTpublic:Client(QWidget *parent = 0, Qt::WFlags flags = 0);~Client();private slots:void sendMessageClickSlot();void showReceiveMessageSlot();private:QTcpSocket *m_pSocket;QLabel *m_pRecieveMesLbl;QLabel *m_pMessageLbl;QLineEdit *m_pMessageLEdit;QPushButton *m_pSendMesBtn;};
Client::Client(QWidget *parent, Qt::WFlags flags): QDialog(parent, flags){m_pMessageLbl = new QLabel(tr("Message:"),this);m_pMessageLEdit = new QLineEdit(this);m_pSendMesBtn = new QPushButton(tr("Sending"),this);m_pSocket = new QTcpSocket();m_pRecieveMesLbl = new QLabel(this);m_pRecieveMesLbl->setGeometry(5,30,200,20);m_pMessageLbl->setGeometry(5,5,100,20);m_pMessageLEdit->setGeometry(110,5,100,20);m_pSendMesBtn->setGeometry(220,5,50,20);m_pSocket->connectToHost(QHostAddress::LocalHost,8888);connect(m_pSendMesBtn,SIGNAL(clicked()),this,SLOT(sendMessageClickSlot()));connect(m_pSocket,SIGNAL(readyRead()),this,SLOT(showReceiveMessageSlot()));//ui.setupUi(this);}Client::~Client(){}void Client::sendMessageClickSlot(){QString text = m_pMessageLEdit->text();m_pSocket->write(text.toLocal8Bit());}void Client::showReceiveMessageSlot(){QByteArray mesArray = m_pSocket->readAll();QString strMes(mesArray);m_pRecieveMesLbl->setText(tr(mesArray.constData()));}
结果截图
- QTcpServer简单用法
- QTcpServer基本用法
- QTcpSocket、QTcpServer基本用法
- QTcpServer / QTcpSocket 简单示例
- QTcpServer
- Qt之QTcpServer/QTcpSocket简单收发信息
- Qt之QTcpServer/QTcpSocket简单收发信息
- Qt之QTcpServer/QTcpSocket简单收发信息(1)
- Qt之QTcpServer/QTcpSocket简单收发信息(2)
- Qt之QTcpServer/QTcpSocket简单收发信息(1)
- Qt之QTcpServer/QTcpSocket简单收发信息(1)
- Qt之QTcpServer/QTcpSocket简单收发信息(1)
- Qt之QTcpServer/QTcpSocket简单收发信息(1)
- Qt之QTcpServer/QTcpSocket简单收发信息(1)
- Qt之QTcpServer/QTcpSocket简单收发信息(2)
- QTcpserver listen
- QTcpSocker, QTcpServer
- Qt QTcpServer
- 嵌入式学习笔记之UART编程练习
- HDU1312:Red and Black(DFS)
- 网站解密:从零开始学建站
- 我的第一篇CSDN
- SSH原理与运用(一):远程登录
- QTcpServer简单用法
- recover database using backup controlfile 转
- 面向对象小实例
- HP SSDO(Server Delivery) 实习生招聘笔试部分题目
- Hadoop
- gdb使用小结
- 编辑器Editplus的使用
- Android应用开发之XML文件解析之一
- 程序解错之道