色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

    文章

    11294

    瀏覽量

    209345
  • 服務器
    +關注

    關注

    12

    文章

    9125

    瀏覽量

    85335
  • 網絡編程
    +關注

    關注

    0

    文章

    71

    瀏覽量

    10074
收藏 人收藏

    評論

    相關推薦

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

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

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

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

    Linux網絡基礎知識總結

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

    Linux應用編程的基本概念

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

    Linux開發怎么學?

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

    Linux網絡協議棧的實現

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

    linux開發板與樹莓派的區別

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

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

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

    Linux中查看IP地址的方法

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

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

    。 為什么使用Python? Python是一種廣泛使用的高級編程語言,以其易讀性和易用性而聞名。Python擁有強大的庫,如TensorFlow、Keras和PyTorch,這些庫提供了構建和訓練神經網絡的工具。 神經網絡的基
    的頭像 發表于 07-02 09:58 ?399次閱讀

    Linux 6.10集成RISC-V更新,支持Rust編程語言

    本次補丁升級中,Linux內核進一步擴展了對應于RISC-V架構的Rust編程語言支持。在此之前,Rust已可應用在x86_64、龍芯LoongArch以及ARM64等多種架構之上。
    的頭像 發表于 05-23 17:16 ?949次閱讀

    Linux是做什么用的?

    Ubuntu、Fedora、Debian等)提供了友好的用戶界面和豐富的應用程序。 4、開發平臺:Linux提供了豐富的開發工具和環境,支持多種編程語言和開發框架。許多開發人員使用Linux作為開發平臺
    發表于 04-28 15:40

    FCX3使用cyusb_linux通過Linux對其進行編程,報SPI扇區擦除失敗怎么解決?

    我有一個 FCX3 定制板,我嘗試使用 cyusb_linux 通過 Linux 對其進行編程。 我 CAN 看到設備 VID (04b4) 和 PID (00f3),但是當嘗試對 SPI 進行
    發表于 02-26 06:39

    linux多線程編程實例

    linux線程
    的頭像 發表于 02-15 21:16 ?459次閱讀
    <b class='flag-5'>linux</b>多線程<b class='flag-5'>編程</b>實例

    如何解決Linux系統中的網絡連接問題?

    如何解決Linux系統中的網絡連接問題? Linux系統中的網絡連接問題是常見的技術難題之一,通常涉及在Linux上配置
    的頭像 發表于 01-12 15:17 ?984次閱讀
    主站蜘蛛池模板: 精品视频中文字幕| 国产伦子沙发午休系列资源曝光 | 凌晨三点免费WWW| 美女扒开腿让男生桶免费看动态图| 伦理片在线线看手机版| 欧美一第一页草草影院| 少妇高潮久久久久7777| 亚洲精品国产第一区第二区| 亚洲综合日韩中文字幕v在线| 2020国产成人精品视频人| chinese极品嫩模videos| 丰满老熟女白浆直流| 國產日韓亞洲精品AV| 龙泽罗拉av| 涩里番app黄版网站| 亚洲熟伦熟女专区| 97SE亚洲国产综合在线| 电影内射视频免费观看| 黄色网址在线免费观看| 嫩草国产福利视频一区二区| 无码爽死成人777在线观看网站| 亚洲宅男天堂a在线| FREE性丰满白嫩白嫩的HD| 国产精品一区二区三区四区五区| 久久观看视频| 日本黄色www| 一级毛片视频免费| 被窝伦理电影午夜| 精品极品三大极久久久久| 亚洲综合AV色婷婷五月蜜臀| 亚洲精品免播放器在线观看| 97精品视频| 国产女人与黑人在线播放| 毛片免费在线视频| 无限资源在线看影院免费观看 | 免费观看成人www精品视频在线| 日产精品高潮呻吟AV久久| 一个人免费观看HD完整版| 大陆午夜伦理| 久久无码人妻中文国产| 十次啦中文网|