Qt Socket簡單通訊

2021-06-20 00:34:39 字數 1825 閱讀 7110

最近要用到qt的socket部分,網上關於這部分的資料都比較複雜,我在這總結一下,把socket的主要部分提取出來,實現tcp和udp的簡單通訊。

udp沒有特定的server端和client端,簡單來說就是向特定的ip傳送報文,因此我把它分為傳送端和接收端。

注意:在.pro檔案中要新增qt += network,否則無法使用qt的網路功能。

#include qudpsocket *sender;

sender = new qudpsocket(this);

qbytearray datagram = 「hello world!」;

//udp廣播

sender->writedatagram(datagram.data(),datagram.size(),qhostaddress::broadcast,6665);

//向特定ip傳送

qhostaddress serveraddress = qhostaddress("10.21.11.66");

sender->writedatagram(datagram.data(), datagram.size(),serveraddress, 6665);

/* writedatagram函式原型,傳送成功返回位元組數,否則-1

qint64 writedatagram(const char *data,qint64 size,const qhostaddress &address,quint16 port)

qint64 writedatagram(const qbytearray &datagram,const qhostaddress &host,quint16 port)

*/

#include qudpsocket *receiver;

//訊號槽

private slots:

void readpendingdatagrams();

receiver = new qudpsocket(this);

receiver->bind(qhostaddress::localhost, 6665);

connect(receiver, signal(readyread()),this, slot(readpendingdatagrams()));

void readpendingdatagrams()

}

tcp的話要複雜點,必須先建立連線才能傳輸資料,分為server端和client端。

#include qtcpsocket *client;

char *data="hello qt!";

client = new qtcpsocket(this);

client->connecttohost(qhostaddress("10.21.11.66"), 6665);

client->write(data);

#include qtcpserver *server;

qtcpsocket *clientconnection;

server = new qtcpserver();

server->listen(qhostaddress::any, 6665);

connect(server, signal(newconnection()), this, slot(acceptconnection()));

void acceptconnection()

void readclient()

QT Socket程式設計 UDP Server

1 在 pro檔案中新增 qt network 2 在 中新增 include qudpsocket m pudpsocket udp socket m pudpsocket new qudpsocket this m pudpsocket bind qhostaddress any,port co...

QT Socket程式設計 TCP Server

1 在 pro檔案中新增 qt network 2 在 中新增 qtcpserver m ptcpserver server tcp socket qtcpsocket m pconnectsocket client connect socket 初始化socket m ptcpserver new...

簡單Socket通訊

示例程式是同步套接字程式,功能很簡單,只是客戶端發給伺服器一條資訊,伺服器向客戶端返回一條資訊 這裡只是乙個簡單的示例,是乙個最基本的socket程式設計流程,在接下來的文章中,會依次記錄套接字的同步和非同步,以及它們的區別。下面是示例程式的簡單步驟說明 伺服器端 第一步 用指定的埠號和伺服器的ip...