[cpp]view plain
copy
/*** 書本:【qt5開發及例項】
* 功能:多執行緒網路時間伺服器
* 檔案:dialog.h
*/#ifndef dialog_h
#define dialog_h
#include
#include
#include
class
timeserver;
class
dialog :
public
qdialog
; #endif // dialog_h
[cpp]view plain
copy
/*** 書本:【qt5開發及例項】
* 功能:多執行緒網路時間伺服器
* 檔案:dialog.cpp
*/#include "dialog.h"
#include "timeserver.h"
#include
#include
#include
dialog::dialog(qwidget *parent)
: qdialog(parent)
//監聽成功,輸出有動靜的埠號
label1->settext(tr("伺服器端口: %1"
).arg(timeserver->serverport()));
} //void slotshow(); //執行緒在介面的顯示,執行緒結束的時候呼叫
void
dialog::slotshow()
dialog::~dialog()
[cpp]view plain
copy
/*** 書本:【qt5開發及例項】
* 功能:多執行緒網路時間伺服器
* 檔案:timeserver.h
*/#ifndef timeserver_h
#define timeserver_h
#include
class
dialog;
class
timeserver :
public
qtcpserver
; #endif // timeserver_h
[cpp]view plain
copy
/*** 書本:【qt5開發及例項】
* 功能:多執行緒網路時間伺服器
* 檔案:timeserver.cpp
*/#include "timeserver.h"
#include "timethread.h"
#include "dialog.h"
timeserver::timeserver(qobject *parent) :
qtcpserver(parent)
//void incomingconnection(int socketdescriptor); //當tcp有新的連線的時候呼叫,其引數為所接收新連線的套接字描述符
void
timeserver::incomingconnection(
intsocketdescriptor)
[cpp]view plain
copy
/*** 書本:【qt5開發及例項】
* 功能:多執行緒網路時間伺服器
* 檔案:timethread.h
*/#ifndef timethread_h
#define timethread_h
#include
#include
#include
class
timethread :
public
qthread
; #endif // timethread_h
[cpp]view plain
copy
/*** 書本:【qt5開發及例項】
* 功能:多執行緒網路時間伺服器
* 檔案:timethread.cpp
*/#include "timethread.h"
#include //時間
#include //協議傳輸的位元組流
#include //資料流
timethread::timethread(int
socketdescriptor, qobject *parent) :
qthread(parent), socketdescriptor(socketdescriptor) //初始化
void
timethread::run()
//執行緒執行開始的函式
qbytearray block; //位元組陣列,這個block應該是乙個指向第乙個位置的指標
qdatastream out(&block, qiodevice::writeonly); //資料流,資料流操作block,這裡block指標??
out.setversion(qdatastream::qt_5_3); //版本= =
uint time2u = qdatetime::currentdatetime().totime_t(); //得到系統的時間,並傳換成時間的格式
outtcpsocket.write(block); //把位元組流寫到協議埠
tcpsocket.disconnectfromhost(); //斷開埠連線
tcpsocket.waitfordisconnected(); //預設時間,等待客戶端返回資訊
}[cpp]view plain
copy
/*** 書本:【qt5開發及例項】
* 功能:多執行緒網路時間伺服器
* 檔案:timeclient.h
*/#ifndef timeclient_h
#define timeclient_h
#include
#include
#include
#include
#include
#include
#include
class
timeclient :
public
qdialog
; #endif // timeclient_h
[cpp]view plain
copy
/*** 書本:【qt5開發及例項】
* 功能:多執行緒網路時間伺服器
* 檔案:timeclient.cpp
*/#include "timeclient.h"
#include
#include
#include
#include
#include
timeclient::timeclient(qwidget *parent)
: qdialog(parent)
//void enablegetbtn(); //按鈕的控制
void
timeclient::enablegetbtn()
//void gettime(); //準備得到時間
void
timeclient::gettime()
//void readtime(); //讀取時間過來
void
timeclient::readtime()
//不為零,那麼就繼續用
datetimeedit->setdatetime(qdatetime::fromtime_t(time2u));
//按鈕設定為可以按
getbtn->setenabled(true
);
} //void showerror(qabstractsocket::socketerror socketerror); //出錯
void
timeclient::showerror(qabstractsocket::socketerror socketerror)
getbtn->setenabled(true
);
} timeclient::~timeclient()
多執行緒時間伺服器
include stdafx.h include include include include include define port 8080 int x 1 void error char str dword winapi new client proc lpvoid lpparam prin...
多執行緒伺服器
posix執行緒庫 a 與執行緒有關的函式都構成了乙個完整的系列,絕大多數函式的名字都是以 pthread 打頭的。b 要使用這些庫函式,要引入標頭檔案。c 鏈結這些執行緒庫函式時要使用編譯命令的 lpthread 選項。int pthread create pthread t thread,con...
ACE多執行緒伺服器
ace adaptive communication environment 它是乙個物件導向的 跨平台的 開放原始碼的網路程式設計基礎設施框架。ace 是由加利福尼亞大學irvine分校的douglas c.schmidt 博士主導開發的,是一種跨平台可編譯的網路程式設計api,並隨後在工業界中發...