国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

網(wǎng)絡編程—Socket套接字詳解

這篇具有很好參考價值的文章主要介紹了網(wǎng)絡編程—Socket套接字詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一、網(wǎng)絡編程

1.1、為什么需要網(wǎng)絡編程?

1.2、什么是網(wǎng)絡編程

1.3、發(fā)送端和接收端

?編輯1.4、請求和響應

?編輯1.5、客戶端和服務端?

二、Socket套接字?

2.1、概念

2.2、分類?

2.2.1、流套接字?

2.2.2、數(shù)據(jù)報套接字?

2.2.3、原始套接字?

2.3、Socket編程注意事項?


一、網(wǎng)絡編程

1.1、為什么需要網(wǎng)絡編程?

現(xiàn)在網(wǎng)絡普及程度越來越高,網(wǎng)絡上保存著我們?nèi)粘I钪兴枰母鞣N資源,使用程序通過網(wǎng)絡來獲取這些資源的過程就需要網(wǎng)絡編程來實現(xiàn)。

1.2、什么是網(wǎng)絡編程

網(wǎng)絡編程,是指網(wǎng)絡上的主機,通過不同的進程,以程序的方式實現(xiàn)網(wǎng)絡編程(網(wǎng)絡數(shù)據(jù)傳輸)。

網(wǎng)絡編程—Socket套接字詳解,網(wǎng)絡,服務器,運維,Socket套接字

當然,只要滿足不同的進程就行;所以即便是同一個主機,只要是不同的進程,基于網(wǎng)絡來傳輸數(shù)據(jù),也屬于網(wǎng)絡編程。?

對于條件有限情況下,一般也都是在一個主機中運行多個進程來完成網(wǎng)絡編程。

但是,一定要明確,目的是提供網(wǎng)絡上不同主機,基于網(wǎng)絡來傳輸數(shù)據(jù)資源。

  • 進程A:編程來獲取網(wǎng)絡資源
  • 進程B:編程來提供網(wǎng)絡資源

1.3、發(fā)送端和接收端

在第一次網(wǎng)絡數(shù)據(jù)傳輸時:

發(fā)送端:數(shù)據(jù)的發(fā)送方進程,稱為發(fā)送端,發(fā)送端主機即網(wǎng)絡通信中的源主機。

接收端:數(shù)據(jù)的接收方進程,稱為接收端,接收端主機即網(wǎng)絡通信中的目的主機。

收發(fā)端:發(fā)送端和接收端兩端,簡稱為收發(fā)端。

注意:發(fā)送端和接收端只是相對的,只是一次網(wǎng)絡數(shù)據(jù)傳輸產(chǎn)生數(shù)據(jù)流向后的概念。

1.4、請求和響應

一般來說,獲取一個網(wǎng)絡資源,涉及到兩次數(shù)據(jù)傳輸:

  • 第一次:請求數(shù)據(jù)的發(fā)送
  • 第二次:響應數(shù)據(jù)的發(fā)送

好比餐館吃飯:先要發(fā)起請求—點份炒飯;響應對方的請求—提供一份炒飯。

1.5、客戶端和服務端?

服務端:在常見的網(wǎng)絡數(shù)據(jù)傳輸?shù)膱鼍跋?,把提供服務的一方進程,稱為服務端,可以對外提供服務。?

客戶端獲取服務的一方進程,稱為客戶端。

對于服務來說,一般是提供:

  • 客戶端獲取服務資源

網(wǎng)絡編程—Socket套接字詳解,網(wǎng)絡,服務器,運維,Socket套接字

  • 客戶端保存資源在服務端??

網(wǎng)絡編程—Socket套接字詳解,網(wǎng)絡,服務器,運維,Socket套接字

好比我們在銀行辦理業(yè)務?

  • 銀行提供存款服務:用戶(客戶端)存儲現(xiàn)金(資源)在銀行(服務端).
  • 銀行提供取款服務:用戶(客戶端)取存儲的現(xiàn)金(獲取用戶端資源).

常見的客戶端和服務端模型

客戶端是只給用戶使用的程序,服務端是提供用戶服務的程序。?

  1. ?客戶端先發(fā)送請求到服務端.
  2. 服務端根據(jù)請求數(shù)據(jù),執(zhí)行相應的業(yè)務處理.
  3. 服務端返回響應,發(fā)送業(yè)務處理結(jié)果.
  4. 客戶端根據(jù)響應數(shù)據(jù),展示處理結(jié)果(獲取的資源,或提示保存資源的處理結(jié)果).

?網(wǎng)絡編程—Socket套接字詳解,網(wǎng)絡,服務器,運維,Socket套接字

二、Socket套接字?

2.1、概念

Socket套接字,是由系統(tǒng)提供用于網(wǎng)絡通信的技術(shù),是基于TCP/IP協(xié)議的網(wǎng)絡通信的基本操作單元?;赟ocket套接字的網(wǎng)絡程序開發(fā)就是網(wǎng)絡編程。

2.2、分類?

Socket套接字主要針對傳輸層協(xié)議劃分為如下三類:

2.2.1、流套接字?

使用傳輸層TCP協(xié)議,以下為TCP協(xié)議的特點

  • 有連接
  • 可靠傳輸
  • 面向字節(jié)流
  • 有接收緩沖區(qū),也有發(fā)送緩沖區(qū)
  • 大小不限

對于字節(jié)流來說,可以簡單理解為,傳輸數(shù)據(jù)是基于IO流,流式數(shù)據(jù)的特征就是在IO流沒有關(guān)閉的情況下,是無邊界的數(shù)據(jù),可以多次發(fā)送,也可以分開多次發(fā)送。

2.2.2、數(shù)據(jù)報套接字?

使用傳輸層UDP協(xié)議 ,以下為UDP協(xié)議的特點

  • 有連接
  • 不可靠傳輸
  • 面向數(shù)據(jù)報
  • 有接收緩沖區(qū),也有發(fā)送緩沖區(qū)
  • 大小受限:一次最多傳輸64k

對于數(shù)據(jù)報來說,可以簡單理解為,傳輸數(shù)據(jù)是一塊一塊的,發(fā)送一塊數(shù)據(jù)假如是100個字節(jié),必須一次性發(fā)送,接收也必須一次性接收,而不能分一百接收,每次接收一個字節(jié)。

2.2.3、原始套接字?

原始套接字用于自定義傳輸協(xié)議,用于讀寫內(nèi)核沒有處理的IP協(xié)議數(shù)據(jù)。

有興趣了解的盆友可以去看看這位大佬的博客原始套接字?

2.3、Socket編程注意事項?

  1. 客戶端和服務端:開發(fā)時,經(jīng)常是基于一個主機開啟兩個進程作為客戶端和服務端,但真實的場景,一般都是不同主機。
  2. 注意目的IP和目的端口號,標識了一次數(shù)據(jù)傳輸時要發(fā)送數(shù)據(jù)的終點主機和進程。
  3. Socket編程我們是使用流套接字和數(shù)據(jù)報套接字,基于傳輸層的TCP或UDP協(xié)議,但應用層協(xié)議,也需要考慮,這塊我們在后續(xù)來說明如何設計應用層協(xié)議。
  4. 關(guān)于端口被占用的問題。

如果一個進程A已經(jīng)綁定了一個端口,再啟動一個進程B綁定該端口,就會報錯,這種情況也叫端口占用。對于java進程來說端口占用報錯信息

網(wǎng)絡編程—Socket套接字詳解,網(wǎng)絡,服務器,運維,Socket套接字此時就需要檢查進程B綁定的是哪個端口,再查看哪個端口被占用,以下為端口查看進程的方式

1、打開命令行窗口輸入命令,查找占用端口的應用進程。則可以顯示對應進程的pid。如以下命令顯示了8888進程的pid。

netstat -ano|findstr 端口號

網(wǎng)絡編程—Socket套接字詳解,網(wǎng)絡,服務器,運維,Socket套接字

2、在任務管理器中,通過pid查找進程

網(wǎng)絡編程—Socket套接字詳解,網(wǎng)絡,服務器,運維,Socket套接字

解決端口被占用的問題:文章來源地址http://www.zghlxwxcb.cn/news/detail-569075.html

  • 如果占用端口的進程A不需要運行,就可以關(guān)閉A后,再啟動需要綁定該端口的進程B
  • 如果需要運行A進程,則可以修改進程B的綁定端口,換為其他沒有使用的端口。?

到了這里,關(guān)于網(wǎng)絡編程—Socket套接字詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關(guān)文章

  • [JAVAee]網(wǎng)絡編程-套接字Socket

    [JAVAee]網(wǎng)絡編程-套接字Socket

    目錄 基本概念 發(fā)送端與接收端 請求與響應 ?編輯客戶端與服務器 Socket套接字? 分類 數(shù)據(jù)報套接字 流套接字傳輸模型?? UDP數(shù)據(jù)報套接字編程 DatagramSocket API DatagramPacket API InetSocketAddress API 示例一: 示例二: TCP流數(shù)據(jù)報套接字編程 ServerSocket API Socket API 示例一: ? 網(wǎng)絡編程指的

    2024年02月13日
    瀏覽(126)
  • 【Python】Python 網(wǎng)絡編程 ( Socket 套接字簡介 | Socket 套接字使用步驟 | Socket 套接字服務端與客戶端開發(fā) )

    【Python】Python 網(wǎng)絡編程 ( Socket 套接字簡介 | Socket 套接字使用步驟 | Socket 套接字服務端與客戶端開發(fā) )

    Socket 套接字 是一種 進程之間的 通信機制 , 通過套接字可以在 不同的進程之間 進行數(shù)據(jù)交換 ; 在 網(wǎng)絡編程 中 , Socket 套接字 主要用于 客戶端 與 服務器 之間的 通信 , 大部分 網(wǎng)絡相關(guān)的應用程序 , 都使用到了 Socket 套接字技術(shù) ; 套接字有兩種類型 : 流套接字 : 提供了一個可

    2024年02月15日
    瀏覽(604)
  • 網(wǎng)絡編程『socket套接字 ‖ 簡易UDP網(wǎng)絡程序』

    網(wǎng)絡編程『socket套接字 ‖ 簡易UDP網(wǎng)絡程序』

    ??個人主頁: 北 海 ??所屬專欄: Linux學習之旅、神奇的網(wǎng)絡世界 ??操作環(huán)境: CentOS 7.6 阿里云遠程服務器 在當今數(shù)字化時代,網(wǎng)絡通信作為連接世界的橋梁,成為計算機科學領域中至關(guān)重要的一部分。理解網(wǎng)絡編程是每一位程序員必備的技能之一,而掌握套接字編程則

    2024年02月04日
    瀏覽(103)
  • 【網(wǎng)絡通信】socket編程——TCP套接字

    【網(wǎng)絡通信】socket編程——TCP套接字

    TCP依舊使用代碼來熟悉對應的套接字,很多接口都是在udp中使用過的 所以就不會單獨把他們拿出來作為標題了,只會把第一次出現(xiàn)的接口作為標題 通過TCP的套接字 ,來把數(shù)據(jù)交付給對方的應用層,完成雙方進程的通信 在 tcpServer.hpp 中,創(chuàng)建一個命名空間 yzq 用于封裝 在命名

    2024年02月13日
    瀏覽(102)
  • 【JavaEE初階】 網(wǎng)絡編程基礎與Socket套接字

    【JavaEE初階】 網(wǎng)絡編程基礎與Socket套接字

    用戶在瀏覽器中,打開在線視頻網(wǎng)站,如騰訊看視頻,實質(zhì)是通過網(wǎng)絡,獲取到網(wǎng)絡上的一個視頻資源。 與本地打開視頻文件類似,只是視頻文件這個資源的來源是 網(wǎng)絡 。 相比本地資源來說,網(wǎng)絡提供了更為豐富的網(wǎng)絡資源: 所謂的網(wǎng)絡資源,其實就是在網(wǎng)絡中可以獲取

    2024年02月05日
    瀏覽(97)
  • Linux網(wǎng)絡編程- 原始套接字(Raw Socket)

    原始套接字(Raw Socket)提供了一種機制,允許應用程序直接訪問底層傳輸協(xié)議,繞過操作系統(tǒng)提供的傳輸層接口。這種套接字通常用于實現(xiàn)新的協(xié)議或?qū)ΜF(xiàn)有協(xié)議進行低級別的操作。 以下是對原始套接字的詳細介紹: 定義與用途 : 原始套接字是直接基于網(wǎng)絡層(如IP)的。

    2024年02月07日
    瀏覽(97)
  • 網(wǎng)絡編程之 Socket 套接字(使用數(shù)據(jù)報套接字和流套接字分別實現(xiàn)一個小程序(附源碼))

    網(wǎng)絡編程之 Socket 套接字(使用數(shù)據(jù)報套接字和流套接字分別實現(xiàn)一個小程序(附源碼))

    網(wǎng)絡編程是指網(wǎng)絡上的主機,通過不同的進程,以編程的方式實現(xiàn) 網(wǎng)絡通信(或稱為網(wǎng)絡數(shù)據(jù)傳輸) 只要滿足不同的進程就可以進行通信,所以即便是在同一個主機,只要不同的進程,基于網(wǎng)絡傳輸數(shù)據(jù),也屬于網(wǎng)絡編程 在一次網(wǎng)絡傳輸中: 發(fā)送端: 數(shù)據(jù)的 發(fā)送方進程

    2024年02月03日
    瀏覽(84)
  • 【網(wǎng)絡編程】網(wǎng)絡編程概念,socket套接字,基于UDP和TCP的網(wǎng)絡編程

    【網(wǎng)絡編程】網(wǎng)絡編程概念,socket套接字,基于UDP和TCP的網(wǎng)絡編程

    前言: 大家好,我是 良辰丫 ,今天我們一起來學習網(wǎng)絡編程,網(wǎng)絡編程的基本概念,認識套接字,UDP與TCP編程.?????? ??個人主頁:良辰針不戳 ??所屬專欄:javaEE初階 ??勵志語句:生活也許會讓我們遍體鱗傷,但最終這些傷口會成為我們一輩子的財富。 ??期待大家三連,關(guān)注

    2023年04月20日
    瀏覽(85)
  • 網(wǎng)絡編程day1——進程間通信-socket套接字

    ????????基本特征:socket是一種接口技術(shù),被抽象了一種文件操作,可以讓同一計算機中的不同進程之間通信,也可以讓不同計算機中的進程之間通信(網(wǎng)絡通信) ? ? ? ? 進程A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????????????? 進程B ? ? 創(chuàng)建socket對象

    2024年02月10日
    瀏覽(106)
  • 【Linux網(wǎng)絡】網(wǎng)絡編程套接字 -- 基于socket實現(xiàn)一個簡單UDP網(wǎng)絡程序

    【Linux網(wǎng)絡】網(wǎng)絡編程套接字 -- 基于socket實現(xiàn)一個簡單UDP網(wǎng)絡程序

    我們把數(shù)據(jù)從A主機發(fā)送到B主機,是目的嗎?不是,真正通信的不是這兩個機器!其實是這兩臺機器上面的軟件(人) 數(shù)據(jù)有 IP(公網(wǎng)) 標識一臺唯一的主機 ,用誰來標識各自主機上客戶或者服務進程的唯一性呢? 為了更好的表示一臺主機上服務進程的唯一性,我們采用 端口號

    2024年02月12日
    瀏覽(848)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包