vc下搭建tcp服務器

vc下搭建tcp服務器

ID:13767551

大?。?91.50 KB

頁數(shù):18頁

時間:2018-07-24

vc下搭建tcp服務器_第1頁
vc下搭建tcp服務器_第2頁
vc下搭建tcp服務器_第3頁
vc下搭建tcp服務器_第4頁
vc下搭建tcp服務器_第5頁
資源描述:

《vc下搭建tcp服務器》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在教育資源-天天文庫。

1、使用TCP套接字編程可以實現(xiàn)基于TCP/IP協(xié)議的面向連接的通信,它分為服務器端和客戶端兩部分,其主要實現(xiàn)過程如下圖所示。作為服務器一方,其主要函數(shù)如下:socket函數(shù):為了執(zhí)行網(wǎng)絡輸入輸出,一個進程必須做的第一件事就是調(diào)用socket函數(shù)獲得一個文件描述符。-----------------------------------------------------------------?intsocket(intfamily,inttype,intprotocol);   ?   返回:非負描述字---成功   -1---失敗?--

2、---------------------------------------------------------------  第一個參數(shù)指明了協(xié)議簇,目前支持5種協(xié)議簇,最常用的有AF_INET(IPv4協(xié)議)和AF_INET6(IPv6協(xié)議);第二個參數(shù)指明套接口類型,有三種類型可選:SOCK_STREAM(字節(jié)流套接口)、SOCK_DGRAM(數(shù)據(jù)報套接口)和SOCK_RAW(原始套接口);如果套接口類型不是原始套接口,那么第三個參數(shù)就為0。2.bind函數(shù):為套接口分配一個本地IP和協(xié)議端口,對于網(wǎng)際協(xié)議,協(xié)議地址是32位IP

3、v4地址或128位IPv6地址與16位的TCP或UDP端口號的組合;如指定端口為0,調(diào)用bind時內(nèi)核將選擇一個臨時端口,如果指定一個通配IP地址,則要等到建立連接后內(nèi)核才選擇一個本地IP地址。-------------------------------------------------------------------?intbind(intsockfd,conststructsockaddr*server,socklen_taddrlen);?返回:0---成功   -1---失敗 ?---------------------

4、----------------------------------------------第一個參數(shù)是socket函數(shù)返回的套接口描述字;第二和第第三個參數(shù)分別是一個指向特定于協(xié)議的地址結構的指針和該地址結構的長度。3.listen函數(shù):listen函數(shù)僅被TCP服務器調(diào)用,它的作用是將用sock創(chuàng)建的主動套接口轉(zhuǎn)換成被動套接口,并等待來自客戶端的連接請求。-------------------------------------------------------------------?intlisten(intsockfd,in

5、tbacklog);  ?返回:0---成功   -1---失敗?-------------------------------------------------------------------  第一個參數(shù)是socket函數(shù)返回的套接口描述字;第二個參數(shù)規(guī)定了內(nèi)核為此套接口排隊的最大連接個數(shù)。由于listen函數(shù)第二個參數(shù)的原因,內(nèi)核要維護兩個隊列:以完成連接隊列和未完成連接隊列。未完成隊列中存放的是TCP連接的三路握手為完成的連接,accept函數(shù)是從以連接隊列中取連接返回給進程;當以連接隊列為空時,進程將進入睡眠狀態(tài)。4.a

6、ccept函數(shù):accept函數(shù)由TCP服務器調(diào)用,從已完成連接隊列頭返回一個已完成連接,如果完成連接隊列為空,則進程進入睡眠狀態(tài)。-------------------------------------------------------------------    ?intaccept(intlistenfd,structsockaddr*client,socklen_t*addrlen); ?回:非負描述字---成功   -1---失敗?---------------------------------------------

7、----------------------第一個參數(shù)是socket函數(shù)返回的套接口描述字;第二個和第三個參數(shù)分別是一個指向連接方的套接口地址結構和該地址結構的長度;該函數(shù)返回的是一個全新的套接口描述字;如果對客戶段的信息不感興趣,可以將第二和第三個參數(shù)置為空。5.send和recv函數(shù):TCP套接字提供了send()和recv()函數(shù),用來發(fā)送和接收操作。這兩個函數(shù)與write()和read()函數(shù)很相似,只是多了一個附加的參數(shù)。(1)send()函數(shù)用于數(shù)據(jù)的發(fā)送。----------------------------------

8、---------------------------------   ssize_tsend(intsockfd,constvoid*buf,size_tlen,intflags); ?回:返回寫出的字節(jié)

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。