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

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

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

3天內不再提示

Linux開發_網絡編程基礎(1)

DS小龍哥-嵌入式技術 ? 2022-09-17 15:19 ? 次閱讀

【摘要】 補充進程通信的知識點,介紹網絡編程基礎,完成服務器、客戶端創建,實現服務器與客戶端之間的基本通信。

任務1:進程

(1)?進程的創建和管理

(2)?命名管道與無名管道基本運用

(3)?信號的接收和發送(鬧鐘的信號)

#include 
#include 

/*信號處理函數*/
void sighandler(int signal_num)
{
	alarm(1);
	printf("SIGNAL:%d\n",signal_num);
}

int main(int argc,char **argv)
{
	/*綁定信號到特定的函數*/
	signal(SIGALRM,sighandler);
	alarm(1); //設置鬧鐘
	while(1)
	{
		
	}
	return 0;
}

需求:通過C語言代碼獲取其他進程(c語言代碼、Shell腳本)的返回值。

(1)?system(“ls -l >123.txt”); //重定向輸出

(2)?popen標準管道;

#include

FILE *popen(const char *command, const char *type);

參數解析:

const char *command:就是需要執行的命令,就是可執行程序。例如: “ls -l” “./a.out”

const char *type: “w”寫 “r”讀

int pclose(FILE *stream);

無名管道:

fds[0] 表示讀

fds[1] 表示寫

int dup2(int oldfd, int newfd); //實現文件描述符的重定向

示例: dup2(fds[1],1); //將本程序的標準輸出定義到管道的寫端

標準輸入:0

標準輸出:1

標準錯誤:2

FIFO文件是否可以在創建? 不可在掛載的目錄下創建。

任務2:網絡編程

管道: 運用多個進程之間的通信。

socket網絡編程:運用于多個設備之間通信。

Socket網絡編程實際對TCP/IP協議進行編程。

TCP/IP協議:

底層協議:TCP\UDP

上層協議:HTTP、FTP、NFS……..

??學習網絡編程需要了解的概念:

1.?能夠傳輸網絡數據的方式: 以太網有線網卡、無線網卡WIFI

2.?了解網絡協議:如何區分數據是發給誰的。

3.?IP地址:同一個局域網內,每臺電腦的IP地址不一樣。

IP地址:區分每臺電腦。

4.?端口號:同一個電腦內,區分不同的應用程序。

192.168.1.18:8585

5. TCP協議:點對點協議(打電話),數據丟包會自動重發,傳輸比較穩定。

TCP協議有3次握手的過程,建立通信的基礎。

一般適用于:FTP文件傳輸、HTTP網頁數據傳輸等等…….

TCP協議通信中區分服務器與客戶端:

服務器必須先存在,客戶端才可以連接。(網絡游戲)

客戶端與客戶端之間可以通信?必須通過服務器—模式就是(C/S)

5.?UDP協議:廣播方式協議(上課一樣)。

特性就是:實時性

一般適用于:視頻傳輸、視頻監控…..QQ視頻

UDP協議不區分服務器與客戶端,發送數據的就是服務器,接收數據的就是客戶端。

6.?數據的大小端模式。電腦上的數據一般都是小端模式,網絡數據大端模式。

7.?Socket編程與文件操作原理是一樣。一切皆文件!

??TCP服務器創建流程

1.?調用socket函數創建網絡通信套接字(用法與open類似)。

2.?調用bind綁定端口的函數(填充必須要結構體成員),創建服務器。

3.?設置監聽端口的數量(設置最大能夠連接的客戶端數量)

4.?調用accept等待

5.?調用read或者write函數進行基本通信

??TCP客戶端創建流程

1.?調用socket函數創建網絡通信套接字(用法與open類似)。

2.?調用Connect函數連接指定的服務器

3.?調用read或者write函數進行基本通信

?? 練習

1.?實現服務器與客戶端之間的基本通信,收發數據

客戶端:

#include 
#include 
#include 
#include 
#include 
#include 

/*
TCP服務器:
1. sockt創建套接字
2. bind綁定端口
3. 設置監聽的數量
4. 等待客戶端連接
*/
int socket_sfd; /*保存了服務器端的套接字*/
int socket_cfd; /*已經連接成功的客戶端套接字*/

int main(int argc,char **argv)
{
	if(argc!=3)
	{
		printf("./server <192.168.xx.xx 本地IP地址> <服務器端口號>\n");
		exit(-1);
	}
	
	int err; //存放返回值狀態
	/*1. 創建套接字*/
	socket_sfd=socket(AF_INET,SOCK_STREAM,0);
	if(socket_sfd<0)
	{
		printf("服務器端創建失敗!\n");
		exit(-1);
	}
	
	/*2. 綁定端口*/
	struct sockaddr_in ServerAddr;
	ServerAddr.sin_family=AF_INET; //IPV4協議
	ServerAddr.sin_port=htons(atoi(argv[2]));      //服務器的端口號 最大值65535
	ServerAddr.sin_addr.s_addr=inet_addr(argv[1]); //IP地址賦值
	err=bind(socket_sfd,(const struct sockaddr *)&ServerAddr,sizeof(struct sockaddr));
	if(err!=0)
	{
		printf("服務器端 端口綁定失敗!\n");
		exit(-1);
	}
	
	/*3. 設置監聽的數量*/
	listen(socket_sfd,10);
	
	/*4. 等待客戶端連接*/
	struct sockaddr_in ClientAddr; //存放已經連接成功客戶端信息
	socklen_t addrlen=sizeof(struct sockaddr);    //客戶端的地址長度
	socket_cfd=accept(socket_sfd,(struct sockaddr *)&ClientAddr,&addrlen);
	if(socket_cfd<0)
	{
		printf("服務器端,連接客戶端失敗!\r\n");
		exit(-1);
	}
	
	/*打印一些客戶端的信息*/
	printf("成功連接的客戶端端口號:%d\n",ntohs(ClientAddr.sin_port));
	printf("成功連接的客戶端IP地址:%s\n",inet_ntoa(ClientAddr.sin_addr));
	
	/*5. 收發數據 :服務器給客戶端發送10個字節的數據*/
	err=write(socket_cfd,"123456789",10);
	printf("服務器成功發送:%d 字節\r\n",err);
	return 0;
}

2.?實現服務器與客戶端之間的文件傳輸。(單個文件傳輸)

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

    關注

    18

    文章

    6062

    瀏覽量

    136264
  • 網絡編程
    +關注

    關注

    0

    文章

    72

    瀏覽量

    10088
收藏 人收藏

    評論

    相關推薦

    【RA8D1試用活動】RA8D1B-CPKCOR開發板移植linux

    【RA8D1試用活動】RA8D1B-CPKCOR開發板移植linux
    的頭像 發表于 11-16 01:02 ?301次閱讀
    【RA8D<b class='flag-5'>1</b>試用活動】RA8D<b class='flag-5'>1</b>B-CPKCOR<b class='flag-5'>開發</b>板移植<b class='flag-5'>linux</b>

    MCU編程語言和開發環境介紹

    微控制器單元(Microcontroller Unit,簡稱MCU)是嵌入式系統的核心,廣泛應用于各種電子產品中。隨著技術的發展,MCU編程語言和開發環境也在不斷進步,以適應不同的應用需求。 1
    的頭像 發表于 11-01 11:51 ?973次閱讀

    Linux應用編程的基本概念

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

    Linux開發怎么學?

    Linux開發怎么學? 學習 Linux 是一個循序漸進、持續不斷的過程。我們可以從以下幾個方面開始 1.了解 Linux 的歷史和發展:
    發表于 10-10 14:34

    Linux網絡協議棧的實現

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

    嵌入式linux開發的基本步驟有哪些?

    嵌入式Linux開發是一個復雜的過程,涉及到硬件選擇、操作系統移植、驅動開發、應用程序開發等多個方面。以下是嵌入式Linux
    的頭像 發表于 09-02 09:11 ?580次閱讀

    linux開發板與樹莓派的區別

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

    linux開發板和單片機開發的區別

    、PIC等,處理能力和內存容量相對較低。 操作系統 Linux開發板通常使用Linux操作系統,具有豐富的軟件資源和開發工具。單片機開發則通
    的頭像 發表于 08-30 15:30 ?1099次閱讀

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

    一、Linux驅動開發與應用開發的區別開發層次不同:Linux驅動開發主要是針對硬件設備進行
    的頭像 發表于 08-30 12:16 ?885次閱讀
    <b class='flag-5'>Linux</b> 驅動<b class='flag-5'>開發</b>與應用<b class='flag-5'>開發</b>,你知道多少?

    Linux是做什么用的?

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

    Linux網絡編程

    :面向報文,不可靠,(類似于雙方發短信),適用于數據量大且不需要準確傳輸 進程間通信是基于Linux內核的,不適用于兩臺手機之間的通信。 ? 字節序: 小端:將低序字節存儲在起始地址 大端:將高序字節存儲在起始地址 電腦是小端字節序,網絡字節序是大端字節序。
    的頭像 發表于 03-26 10:58 ?369次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>網絡</b><b class='flag-5'>編程</b>

    fpga開發板與linux開發板區別

    (Field-Programmable Gate Array)是一種可編程邏輯器件,它可以通過編程改變硬件邏輯電路的功能和結構。FPGA采用了可編程的門極,可以根據需要重新配置內部電路,從而實現不同的功能和邏輯關系。而
    的頭像 發表于 02-01 17:09 ?2378次閱讀

    TLT507-Linux-RT應用開發案例

    TLT507-Linux-RT應用開發案例
    的頭像 發表于 01-26 09:46 ?719次閱讀
    TLT507-<b class='flag-5'>Linux</b>-RT應用<b class='flag-5'>開發</b>案例

    TLT507-Linux應用開發手冊

    TLT507-Linux應用開發手冊
    的頭像 發表于 01-26 09:34 ?729次閱讀
    TLT507-<b class='flag-5'>Linux</b>應用<b class='flag-5'>開發</b>手冊

    TL3588-Linux應用開發手冊

    TL3588-Linux應用開發手冊
    的頭像 發表于 01-24 10:58 ?476次閱讀
    TL3588-<b class='flag-5'>Linux</b>應用<b class='flag-5'>開發</b>手冊
    主站蜘蛛池模板: 韩国三级理论在线看中文字幕| 久久电影福利| 黄色工厂在线播放| 久久夜色精品国产噜噜小说| 久久国产香蕉一区精品| 国产精品热久久毛片| 国产成人亚洲综合a∨婷婷| 四虎影院中文字幕| 8844aa在线毛片| 干一干操一操| 午夜黄色在线观看| 国产一级αv片免费观看| 午夜视| 国产精品亚洲色图| 中文字幕v视界影院| 天天操夜操| 天天综合天天| 亚洲乱亚洲乱妇13p| 天天干天天爽天天操| 五月婷婷丁香色| 在线色片| 美女操网站| 天天干夜夜操美女| 国产自在自线午夜精品视频 | 日本骚视频| 久久噜国产精品拍拍拍拍| 成年片免费网址网站| 欧美午夜精品一区二区三区| 动漫精品成人免费网站| 欧洲不卡一卡2卡三卡4卡网站| 在线黄色免费网站| 护士一级aaaaaa毛片| 午夜精品福利在线观看| 四虎永久免费网站入口2020| 欧美伦理影院| 永久免费视频| 国产不卡毛片| 高h污快穿文汁水四溅| 日毛片| 免费看 s色| 加勒比综合|