c 網路程式設計之TCP

2021-10-06 14:12:31 字數 2526 閱讀 7412

此專案的目的是分別編寫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 套接字的建立,不需要處理連線的...