本篇文章給大家分享的是有關(guān)C#網(wǎng)絡(luò)編程代碼框架是最實(shí)用的,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括江漢網(wǎng)站建設(shè)、江漢網(wǎng)站制作、江漢網(wǎng)頁(yè)制作以及江漢網(wǎng)絡(luò)營(yíng)銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,江漢網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到江漢省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!網(wǎng)絡(luò)編程基本流程:
1:Socket概念及原型函數(shù)
原義是“孔”或“插座”。作為BSD UNIX的進(jìn)程通信機(jī)制。通常也稱作"套接字",用于描述IP地址和端口,是一個(gè)通信鏈的句柄。在Internet上的主機(jī)一般運(yùn)行了多個(gè)服務(wù)軟件,同時(shí)提供幾種服務(wù)。每種服務(wù)都打開一個(gè)Socket,并綁定到一個(gè)端口上,不同的端口對(duì)應(yīng)于不同的服務(wù)。
函數(shù)原型:
int socket(int domain, int type, int protocol);
參數(shù)說明:
domain:協(xié)議域,又稱協(xié)議族(family)。常用的協(xié)議族有AF_INET、AF_INET6、AF_LOCAL(或稱AF_UNIX,Unix域Socket)、AF_ROUTE等。協(xié)議族決定了socket的地址類型,在通信中必須采用對(duì)應(yīng)的地址,如AF_INET決定了要用ipv4地址(32位的)與端口號(hào)(16位的)的組合、AF_UNIX決定了要用一個(gè)絕對(duì)路徑名作為地址。type:指定Socket類型。常用的socket類型有SOCK_STREAM、SOCK_DGRAM、SOCK_RAW、SOCK_PACKET、SOCK_SEQPACKET等。流式Socket(SOCK_STREAM)是一種面向連接的Socket,針對(duì)于面向連接的TCP服務(wù)應(yīng)用。數(shù)據(jù)報(bào)式Socket(SOCK_DGRAM)是一種無連接的Socket,對(duì)應(yīng)于無連接的UDP服務(wù)應(yīng)用。protocol:指定協(xié)議。常用協(xié)議有IPPROTO_TCP、IPPROTO_UDP、IPPROTO_SCTP、IPPROTO_TIPC等,分別對(duì)應(yīng)TCP傳輸協(xié)議、UDP傳輸協(xié)議、STCP傳輸協(xié)議、TIPC傳輸協(xié)議。
注意:type和protocol不可以隨意組合,如SOCK_STREAM不可以跟IPPROTO_UDP組合。當(dāng)?shù)谌齻€(gè)參數(shù)為0時(shí),會(huì)自動(dòng)選擇第二個(gè)參數(shù)類型對(duì)應(yīng)的默認(rèn)協(xié)議。
返回值:
如果調(diào)用成功就返回新創(chuàng)建的套接字的描述符,如果失敗就返回INVALID_SOCKET(Linux下失敗返回-1)。套接字描述符是一個(gè)整數(shù)類型的值。每個(gè)進(jìn)程的進(jìn)程空間里都有一個(gè)套接字描述符表,該表中存放著套接字描述符和套接字?jǐn)?shù)據(jù)結(jié)構(gòu)的對(duì)應(yīng)關(guān)系。該表中有一個(gè)字段存放新創(chuàng)建的套接字的描述符,另一個(gè)字段存放套接字?jǐn)?shù)據(jù)結(jié)構(gòu)的地址,因此根據(jù)套接字描述符就可以找到其對(duì)應(yīng)的套接字?jǐn)?shù)據(jù)結(jié)構(gòu)。每個(gè)進(jìn)程在自己的進(jìn)程空間里都有一個(gè)套接字描述符表但是套接字?jǐn)?shù)據(jù)結(jié)構(gòu)都是在操作系統(tǒng)的內(nèi)核緩沖里。
2:BIND(綁定)函數(shù)原型: int bind(SOCKET socket, const struct sockaddr* address, socklen_t address_len); 參數(shù)說明:socket:是一個(gè)套接字描述符。address:是一個(gè)sockaddr結(jié)構(gòu)指針,該結(jié)構(gòu)中包含了要結(jié)合本機(jī)的地址和端口號(hào)。address_len:確定address緩沖區(qū)的長(zhǎng)度。 返回值: 如果函數(shù)執(zhí)行成功,返回值為0,否則為SOCKET_ERROR。
3:整個(gè)客戶端和服務(wù)器端交互圖4:Accept方法
5:C#中一個(gè)簡(jiǎn)單的實(shí)例
服務(wù)器端:
以上就是C#網(wǎng)絡(luò)編程代碼框架是最實(shí)用的,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
分享文章:C#網(wǎng)絡(luò)編程代碼框架是最實(shí)用的-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)鏈接:http://www.chinadenli.net/article26/ceeccg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、做網(wǎng)站、虛擬主機(jī)、響應(yīng)式網(wǎng)站、網(wǎng)站設(shè)計(jì)公司、移動(dòng)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容