日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > > 充電吧
[導(dǎo)讀]socket()的參數(shù)不同 UDP Server不需要調(diào)用listen和accept UDP收發(fā)數(shù)據(jù)用sendto/recvfrom函數(shù) TCP:地址信息在connect/accept時確定UDP:在

socket()的參數(shù)不同
UDP Server不需要調(diào)用listen和accept
UDP收發(fā)數(shù)據(jù)用sendto/recvfrom函數(shù)
TCP:地址信息在connect/accept時確定
UDP:在sendto/recvfrom函數(shù)中每次均 需指定地址信息
UDP:shutdown函數(shù)無效
通常我們在說到網(wǎng)絡(luò)編程時默認(rèn)是指TCP編程,即用前面提到的socket函數(shù)創(chuàng)建一個socket用于TCP通訊,函數(shù)參數(shù)我們通常填為SOCK_STREAM。即socket(PF_INET, SOCK_STREAM, 0),這表示建立一個socket用于流式網(wǎng)絡(luò)通訊。
通過查看socket的man手冊可以看到socket函數(shù)的第一個參數(shù)的值可以為下面這些值: Name????????????????????????????? Purpose
PF_UNIX, PF_LOCAL???? Local communication
PF_INET???????????????????????? IPv4 Internet protocols
PF_INET6?????????????????????? IPv6 Internet protocols
PF_IPX?????????????????????????? IPX - Novell protocols
PF_NETLINK????????????????? Kernel user interface device
PF_X25?????????????????????????? ITU-T X.25 / ISO-8208 protocol
PF_AX25???????????????????????? Amateur radio AX.25 protocol
PF_ATMPVC??????????????????? Access to raw ATM PVCs
PF_APPLETALK???????????? Appletalk
PF_PACKET??????????????????? Low level packet interface 第二個參數(shù)支持下列幾種值: SOCK_STREAM
Provides sequenced, reliable, two-way, connection-based byte streams. An out-of-band data transmission mechanism may be sup‐
ported. SOCK_DGRAM
Supports datagrams (connectionless, unreliable messages of a fixed maximum length). SOCK_SEQPACKET
Provides a sequenced, reliable, two-way connection-based data transmission path for datagrams of fixed maximum length; a con‐
sumer is required to read an entire packet with each read system call. SOCK_RAW
Provides raw network protocol access. SOCK_RDM
Provides a reliable datagram layer that does not guarantee ordering. SOCK_PACKET
Obsolete and should not be used in new programs; see packet(7). 從這里可以看出,SOCK_STREAM這種的特點(diǎn)是面向連接的,即每次收發(fā)數(shù)據(jù)之前必須通過connect建立連接,也是雙向的,即任何一方都可以收發(fā)數(shù)據(jù),協(xié)議本身提供了一些保障機(jī)制保證它是可靠的、有序的,即每個包按照發(fā)送的順序到達(dá)接收方。
而SOCK_DGRAM這種是User Datagram Protocol協(xié)議的網(wǎng)絡(luò)通訊,它是無連接的,不可靠的,因?yàn)橥ㄓ嶋p方發(fā)送數(shù)據(jù)后不知道對方是否已經(jīng)收到數(shù)據(jù),是否正常收到數(shù)據(jù)。任何一方建立一個socket以后就可以用sendto發(fā)送數(shù)據(jù),也可以用recvfrom接收數(shù)據(jù)。根本不關(guān)心對方是否存在,是否發(fā)送了數(shù)據(jù)。它的特點(diǎn)是通訊速度比較快。大家都知道TCP是要經(jīng)過三次握手的,而UDP沒有。
基于上述不同,UDP和TCP編程步驟也有些不同,如下: /*********************************************************************
*filename: UDP編程介紹
*purpose: 通過比較UDP和TCP編程對二者編程步驟進(jìn)行總結(jié)說明*********************************************************************/ TCP編程的服務(wù)器端一般步驟是: 1、創(chuàng)建一個socket,用函數(shù)socket();
2、設(shè)置socket屬性,用函數(shù)setsockopt(); * 可選
3、綁定IP地址、端口等信息到socket上,用函數(shù)bind();
4、開啟監(jiān)聽,用函數(shù)listen();
5、接收客戶端上來的連接,用函數(shù)accept();
6、收發(fā)數(shù)據(jù),用函數(shù)send()和recv(),或者read()和write();
7、關(guān)閉網(wǎng)絡(luò)連接;
8、關(guān)閉監(jiān)聽; TCP編程的客戶端一般步驟是: 1、創(chuàng)建一個socket,用函數(shù)socket();
2、設(shè)置socket屬性,用函數(shù)setsockopt();* 可選
3、綁定IP地址、端口等信息到socket上,用函數(shù)bind();* 可選
4、設(shè)置要連接的對方的IP地址和端口等屬性;
5、連接服務(wù)器,用函數(shù)connect();
6、收發(fā)數(shù)據(jù),用函數(shù)send()和recv(),或者read()和write();
7、關(guān)閉網(wǎng)絡(luò)連接;
與之對應(yīng)的UDP編程步驟要簡單許多,分別如下: UDP編程的服務(wù)器端一般步驟是: 1、創(chuàng)建一個socket,用函數(shù)socket();
2、設(shè)置socket屬性,用函數(shù)setsockopt();* 可選
3、綁定IP地址、端口等信息到socket上,用函數(shù)bind();
4、循環(huán)接收數(shù)據(jù),用函數(shù)recvfrom();
5、關(guān)閉網(wǎng)絡(luò)連接;
UDP編程的客戶端一般步驟是: 1、創(chuàng)建一個socket,用函數(shù)socket();
2、設(shè)置socket屬性,用函數(shù)setsockopt();* 可選
3、綁定IP地址、端口等信息到socket上,用函數(shù)bind();* 可選
4、設(shè)置對方的IP地址和端口等屬性;
5、發(fā)送數(shù)據(jù),用函數(shù)sendto();
6、關(guān)閉網(wǎng)絡(luò)連接;

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

本文中,小編將對PLC予以介紹,如果你想對它的詳細(xì)情況有所認(rèn)識,或者想要增進(jìn)對它的了解程度,不妨請看以下內(nèi)容哦。

關(guān)鍵字: PLC 編程

在下述的內(nèi)容中,小編將會對PLC的相關(guān)消息予以報道,如果PLC是您想要了解的焦點(diǎn)之一,不妨和小編共同閱讀這篇文章哦。

關(guān)鍵字: PLC 編程 模塊化

-Cognizant正在籌辦全球最大規(guī)模的氛圍編程活動,以提升數(shù)千名員工的AI素養(yǎng) 為抓住人工智能經(jīng)濟(jì)將創(chuàng)造的巨大機(jī)遇,Cognizant與Lovable、Windsurf、Cursor、Gemini Code Ass...

關(guān)鍵字: 編程 NI AN PI

上海 2025年6月23日 /美通社/ -- 日前,以"匯聚?連接?創(chuàng)造"為主題的2025世界移動通信大會(MWC)上海拉開帷幕。大會期間,愛立信專家圍繞"5G-A","...

關(guān)鍵字: 愛立信 編程 網(wǎng)絡(luò) AI

北京2025年3月6日 /美通社/ -- 2025世界移動通信大會(MWC25)期間,愛立信的5G可編程網(wǎng)絡(luò)榮獲"GTI年度大獎—移動技術(shù)創(chuàng)新突破獎"。此次獲獎,標(biāo)志著愛立信的5G可編程網(wǎng)絡(luò)獲得了GT...

關(guān)鍵字: 網(wǎng)絡(luò) 愛立信 編程 TI

北京2025年3月4日 /美通社/ -- 日前,愛立信總裁兼首席執(zhí)行官鮑毅康(Börje Ekholm)在巴塞羅那舉行的2025年世界移動通信大會(MWC)上表示,移動連接將在實(shí)現(xiàn)人工智能(AI)和云技術(shù)能力方...

關(guān)鍵字: 愛立信 API AD 編程

上海2025年2月20日 /美通社/ -- 新品亮點(diǎn) 產(chǎn)品豐富:5個系列,9款產(chǎn)品,工作距離覆蓋300~3000mm 性能出眾:采集時間0.3s,不懼反光,精度最高0.03mm@300mm 應(yīng)用廣泛:支...

關(guān)鍵字: 3D視覺 相機(jī) 編程 機(jī)器人系統(tǒng)

防御性編程是指一種預(yù)見代碼可能出現(xiàn)問題并提前采取措施來防止這些問題發(fā)生的編程風(fēng)格。在前端開發(fā)中,這尤其重要,因?yàn)槟愕拇a直接與用戶交互,任何錯誤都可能導(dǎo)致糟糕的用戶體驗(yàn),甚至安全漏洞。

關(guān)鍵字: 代碼 編程

防御性編程是一種編程策略,旨在通過考慮到各種可能的錯誤和異常情況,確保程序在任何情況下都能正常工作。這種方法強(qiáng)調(diào)在編碼過程中盡可能早地發(fā)現(xiàn)并處理錯誤,以避免在運(yùn)行時出現(xiàn)未預(yù)見的問題。

關(guān)鍵字: C語言 編程

在科技發(fā)展的浪潮中,編程成為了連接數(shù)字世界與現(xiàn)實(shí)世界的橋梁。然而,編程的力量既是雙刃劍,既能創(chuàng)造奇跡,也可能帶來災(zāi)難。本文旨在探討如何通過最少的代碼導(dǎo)致計算機(jī)硬件永久不可逆損壞,但更重要的是,強(qiáng)調(diào)這種行為的危險性和不道德...

關(guān)鍵字: 計算機(jī)硬件 編程
關(guān)閉