此專案的目的是分別編寫tcp的客戶端和服務端程式並為兩者建立通訊,客戶端收到從服務端傳送的服務端本地時間。
此專案在dev-c++ 5.11下開發,需要用到的庫有winsock2.h,以及靜態鏈結檔案wsock32.lib。
需要分別建立兩個專案server和client,先執行server.cpp,再執行client.cpp。
#include
#include
#include
#include
void
errexit
(const
char*,
...)
;//錯誤資訊列印函式
void
tcpdaytimed
(socket)
;//將本地時間通過連線套接字傳送
socket passivetcp
(const
char*,
int)
;//建立服務端的監聽套接字
#define qlen 5
//客戶端請求連線佇列的最大長度
#define wsvers makeword(2, 0)
intmain
(int argc,
char
* ar**)
if(wsastartup
(wsvers,
&wsadata)!=0
) msock =
passivetcp
(service, qlen)
;while(1
)tcpdaytimed
(ssock);(
void
)closesocket
(ssock);}
}void
tcpdaytimed
(socket fd)
socket passivetcp
(const
char
* service,
int qlen)
void
errexit
(const
char
*format,..
.)
#include
#include
#include
#include
void
tcpdaytime
(const
char*,
const
char*)
;//主程式,從指定的伺服器節點獲取伺服器的本地時間
void
errexit
(const
char*,
...)
;socket connecttcp
(const
char*,
const
char*)
;//被tcpdaytime呼叫,建立連線到伺服器的套接字
#define linelen 128
#define wsvers makeword(2,0)
intmain
(int argc,
char
* ar**)
if(wsastartup
(wsvers,
&wsadata)!=0
)tcpdaytime
(host, service)
;wsacleanup()
;printf
("按任意鍵繼續...");
getchar()
;return0;
}void
tcpdaytime
(const
char
* host,
const
char
* service)
closesocket
(s);
}void
errexit
(const
char
* format,..
.)socket connecttcp
(const
char
* host,
const
char
* service)
首先執行tcpserver.exe,接著分別執行三次tcpclient.exe(每次執行相當於從伺服器獲取一次時間),執行結果如下:
客戶端
服務端
網路程式設計之TCP程式設計
tcp程式設計中,如果要完成通訊,通訊雙方必須要建立socket,通過socket完成通訊。tcp通訊步驟 1 伺服器啟動serversocket作為通訊的server端,等待客戶端鏈入。2 客戶端建立socket作為通訊的client端 3 client端鏈入server端後建立可靠的 雙向的 持...
網路程式設計之TCP程式設計案例
客戶端 public static void main string args fileinputstream.close outputstream.close catch unknownhostexception e catch ioexception e 伺服器 public static vo...
Visual C 網路程式設計之TCP
前一篇 visual c net網路程式開發之socket 中說到 支援http tcp和udp的類組成了tcp ip三層模型 請求響應層 應用協議層 傳輸層 的中間層 應用協議層,該層的模擬位於最底層的socket類提供了更高層次的抽象,它們封裝 tcp 和 udp 套接字的建立,不需要處理連線的...