在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux網絡編程

jf_09640219 ? 來源:jf_09640219 ? 作者:jf_09640219 ? 2024-03-26 10:58 ? 次閱讀

一、介紹

比如2個安卓手機需要通訊,就必須獲得對方的IP地址和端口

wKgZomX2ka2AJV7kAAP5n4qgJjM308.pngwKgZomX2lV-Aca30AB1GmzLAIgU761.png

socket套接字:分為TCP和UDP

TCP:面向連接,可靠,(類似于雙方打電話),適用于數據量小而且需要準確傳輸

UDP:面向報文,不可靠,(類似于雙方發短信),適用于數據量大且不需要準確傳輸

wKgZomX2lSCAO43UACggk-g7ydc046.pngwKgaomX2lNuAC-IZAAGPQ1ZXiz8556.png

進程間通信是基于Linux內核的,不適用于兩臺手機之間的通信。

字節序:

小端:將低序字節存儲在起始地址

大端:將高序字節存儲在起始地址

wKgaomX2mS2AaGfdAAIYGvahd34588.pngwKgZomX5LR2AYk6BABfbQuMah5Y754.png

電腦是小端字節序,網絡字節序是大端字節序。

二、socket服務器與客戶端

客戶端獲取服務器的端口號和IP地址:

wKgZomX2mwCALJ_uABsiaxSPn-A629.pngwKgZomX2nYWAANmtAAuu6DEn-_g558.png

socket的具體工作流程:

wKgaomX2ob6AXEcHABVDTM7L_v4425.png

wKgZomX2o0-AQHU-ABF1UgWIrms045.png

wKgaomX2ph6AFJBRABGqHrVQv6Q325.png

wKgZomX2pj2AEOrMAAsnFEGdHCA631.pngwKgZomX2poSAY8jiAAmkSxA8o1Q530.pngwKgaomX2ppKAHitAAA6wuYoS81o699.pngwKgZomX2psGAQ0AtAAm9i9Mt34o494.png

wKgaomX4PfSAekTwAAXj3X_zQmg956.pngwKgZomX4PamAKZmxAAO4irgffDg660.png

wKgaomX4PtKAQxDvAAv-m_hmCPs796.png

atoi()函數

atoi():int atoi(const char *str );

功能:把字符串轉換成整型數。

wKgZomX5RNOAC54lAA0cWwlB9w0119.png

實現例程:

一、linux下客戶端連接服務器,成功后,主機(客戶端)telnet遠程登錄虛擬機(服務器):

①:

wKgaomX5VOSAJoz-AAH0rT9JuIw135.png

創建套接字,確定好連接協議(IPV4),type種類選擇為流式套接字,基于TCP協議。

②:

wKgZomX5Vd6ANdtmAAMxS9TxCzo014.png

確定好服務器的IP地址以及端口號

其中htons是將端口號轉換成網絡能識別的格式;inet_aton是將IP地址轉化成網絡識別的IP地址。

③:

wKgaomX5WRCAfID3AACcrqExgC8998.png

監聽是否有客戶端連接。

④:

wKgaomX5WTiAMQBOAADJOcEmtVo435.png

允許客戶端的接入。

最后while(1);等待客戶端的接入。

二、獲取客戶端的IP地址:

wKgZomX8MdGADVK6AAXOTfO0wLU169.png

在上一個工程代碼的結構上,增加accept具體監聽對象,以及讀取IP地址。

三、客戶端與服務器數據傳輸的實現:

客戶端先寫入再讀取:

wKgZomX8NpmALCdSAALsUeEW4dk726.png

服務器端先讀取再寫入:

wKgZomX8NtGAY-XsAANs38KMT2Q661.png

最后運行服務器與客戶端的代碼會得到:

wKgaomX8NvyARUM6ABKQRjBOZHc784.png

四、端口經常被占用,做成main函數傳參配置文件

wKgZomX-b5OAVZ_lAAmL7XPcUxg555.png

在上述例子中編寫傳參參數:

  c_addr.sin_port=htons(atoi(argv[2]));
       inet_aton(argv[1],&c_addr.sin_addr);
其中atoi(argv[2])是將字符串轉換為整型數據。

運行結果:

wKgaomX-cxaABXqkAA1fmBkn7WE112.png上:客戶端 ?下:服務器

五、

在上述客戶端與服務器之間的聊天


審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11469

    瀏覽量

    212908
  • 服務器
    +關注

    關注

    13

    文章

    9717

    瀏覽量

    87377
  • 網絡編程
    +關注

    關注

    0

    文章

    72

    瀏覽量

    10553
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    手把手教你如何調優Linux網絡參數

    在高并發網絡服務場景中,Linux內核的默認網絡參數往往無法滿足需求,導致性能瓶頸、連接超時甚至服務崩潰。本文基于真實案例分析,從參數解讀、問題診斷到優化實踐,手把手教你如何調優Linux
    的頭像 發表于 05-29 09:21 ?132次閱讀

    Linux中,用新設置對CY7C65215重新編程后,如何啟用新設置?

    Linux 系統下,如何 1.用 Linux 中的編程新設置配置 CY7C65215? 如\"USB 串口配置實用程序\" 或命令行 fwDownload.exe。 2.在
    發表于 05-26 08:23

    Linux主要的性能有哪些?

    都有確定的用途。它支持32位和64位硬件,能運行主要的unix工具軟件、應用程序和網絡協議。linux繼承了unix以網絡為核心的設計思想,是一個性能穩定的多用戶網絡操作系統。
    的頭像 發表于 04-30 18:09 ?175次閱讀
    <b class='flag-5'>Linux</b>主要的性能有哪些?

    Linux網絡設置與基礎服務

    Linux網絡設置與基礎服務
    的頭像 發表于 04-09 11:51 ?2056次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>網絡</b>設置與基礎服務

    Linux的作用

    和環境,支持多種編程語言和開發框架。許多開發人員使用Linux作為開發平臺,進行軟件開發、系統管理和網絡管理等工作。 5、學習和教育:Linux是一個開源的操作系統,提供了大量的學習資
    發表于 04-04 01:57

    百問FB網絡編程 - 網絡編程簡介

    6.1 網絡編程簡介 ?要編寫通過計算機網絡通信的程序,首先要確定這些程序同通信的協議(protocol),在設計一個協議的細節之前,首先要分清程序是由哪個程序發起以及響應何時產生。 ?舉例來說
    發表于 12-04 09:46

    Python編程:處理網絡請求的代理技術

    網絡編程中,代理技術扮演著至關重要的角色,尤其在處理網絡請求時。通過代理服務器,我們可以實現請求的轉發、緩存、負載均衡以及安全控制等功能。Python作為一種功能強大的編程語言,為提
    的頭像 發表于 11-12 07:23 ?500次閱讀

    Linux網絡基礎知識總結

    同 CPU、內存以及 I/O 一樣,網絡也是 Linux 系統最核心的功能。 網絡是一種把不同計算機或網絡設備連接到一起的技術,它本質上是一種進程間通信方式,特別是跨系統的進程間通信,
    的頭像 發表于 10-28 10:42 ?595次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>網絡</b>基礎知識總結

    Linux應用編程的基本概念

    Linux應用編程涉及到在Linux環境下開發和運行應用程序的一系列概念。以下是一些涵蓋Linux應用編程的基本概念。
    的頭像 發表于 10-24 17:19 ?583次閱讀

    Linux開發怎么學?

    令是使用 Linux 的基礎,包括文件操作、目錄管理、用戶管理、進程管理、網絡管理等方面。可以通過閱讀相關的書籍、在線教程等方式學習。以下是常用的命令實例。 # 列出當前目錄下的文件和子目錄 ls # 更改
    發表于 10-10 14:34

    Linux網絡協議棧的實現

    網絡協議棧是操作系統核心的一個重要組成部分,負責管理網絡通信中的數據包處理。在 Linux 操作系統中,網絡協議棧(Network Stack)負責實現 TCP/IP 協議簇,處理應用
    的頭像 發表于 09-10 09:51 ?607次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>網絡</b>協議棧的實現

    linux開發板與樹莓派的區別

    操作系統的微型計算機,主要用于教育、編程、媒體播放等領域。 硬件配置 Linux開發板:Linux開發板的硬件配置因廠商和型號而異,通常包括處理器、內存、存儲、網絡接口等。 樹莓派:樹
    的頭像 發表于 08-30 15:34 ?1781次閱讀

    Linux 驅動開發與應用開發,你知道多少?

    一、Linux驅動開發與應用開發的區別開發層次不同:Linux驅動開發主要是針對硬件設備進行編程,處于操作系統內核層,直接與硬件交互,為上層應用提供設備訪問的接口。Linux應用開發則
    的頭像 發表于 08-30 12:16 ?1478次閱讀
    <b class='flag-5'>Linux</b> 驅動開發與應用開發,你知道多少?

    Linux中查看IP地址的方法

    ifconfig是一個網絡管理工具,用于配置、控制和查詢網絡接口。在許多舊的Linux發行版中,ifconfig是查看和配置網絡接口的主要工具。
    的頭像 發表于 08-07 15:16 ?8926次閱讀
    在<b class='flag-5'>Linux</b>中查看IP地址的方法

    如何使用Python進行神經網絡編程

    。 為什么使用Python? Python是一種廣泛使用的高級編程語言,以其易讀性和易用性而聞名。Python擁有強大的庫,如TensorFlow、Keras和PyTorch,這些庫提供了構建和訓練神經網絡的工具。 神經網絡的基
    的頭像 發表于 07-02 09:58 ?712次閱讀
    主站蜘蛛池模板: 深夜视频在线观看免费 | 视频在线观看h | 天堂网在线资源www种子 | 黑人黄色大片 | 国产三级日产三级韩国三级 | 3344在线观看永久免费 | 稀缺资源呦视频在线网站 | 天堂网www在线 | 日韩在线三级视频 | 羞羞答答xxdd影院欧美 | 99热久久精品最新 | 亚洲第一精品夜夜躁人人爽 | 成人欧美一区二区三区的电影 | 色麒麟影院| 亚洲爽视频 | 天天狠天天透 | 国产偷啪视频一区 | 丁香5月婷婷 | 成人欧美一区二区三区黑人免费 | 你懂的在线免费视频 | 天天干干干干 | 特黄特色大片免费播放器9 特黄特色大片免费视频播放 | 激情亚洲 | 精品无码三级在线观看视频 | 国产亚洲人成网站天堂岛 | 欧美美女福利视频 | 六月色婷婷 | 三级视频网站在线观看 | 国产一级αv片免费观看 | 四虎4545www国产精品 | 精品视频在线观看视频免费视频 | 午夜免费观看_视频在线观看 | 黄色网络在线观看 | 精品玖玖 | 亚洲国产精品国产自在在线 | 亚洲www视频 | 黄色网址有那些 | 成 年 人 视频在线播放 | 色综合久久久久久久久五月 | 免费高清在线爱做视频 | 黑人40厘米全进去xxxx猛交 |