華清遠見嵌入式學習day20 UDP

2021-09-17 06:53:02 字數 2000 閱讀 4192

atoi()

將字串轉化為整數

struct sockaddr_in serveraddr = ;

終端輸入去 \n

fgets(buf,sizeof(buf),stdin);

buf[strlen(buf) - 1] = '\0';  //  吃點\n

獲取客戶端ip位址和埠號

struct sockaddr_in clientaddr;

accept(sockfd,(struct sockaddr *)&clientaddr,&clientlen);

系統自動填充clientaddr內容;

獲取ip: inet_ntoa(clientaddr.sin_addr);

獲取埠號:ntohs(clientaddr.sin_port);

if(argc < 3)

判斷終端輸入個數

ar**[0] ==>  ./server

ar**[1] ==>  192.168.0.40

ar**[2] ==>  8888

伺服器可以繫結任意主機ip

htonl(inaddr_any);

//只能在伺服器端使用;

客戶端輸入 quit ; 然後客戶端關閉;

strncmp(buf,「quit」,4);

ftp檔案伺服器

io裡面的;

偽**:

伺服器端:

1. socket();

2. 填充結構體

3. bind();

4. listen(); 

5. while(1)

}6. 

process_put()

***********************************====    

客戶端:

1. socket();

2. 填充結構體

3. connect();

4. while(1)

}close(fd);

5. 實現

do_list()

do_put(int sockfd, char *filename)

do_get();

recvfrom

name

recv, recvfrom, recvmsg - receive a message from a socket

synopsis

#include

#include

ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,

struct sockaddr *src_addr, socklen_t *addrlen);

功能;用於接收資料,

引數: 

1. sockfd ,sockfd

2. buf 

3. sizeof(buf);

4. 0    表示阻塞

5. 想要關心資料具體是從哪個客戶端來的,那麼需要填充第5和6引數

如果不需要關心資料是從哪個客戶端來的,填 null,null;

sendto

name

send, sendto, sendmsg - send a message on a socket

synopsis

#include

#include

ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,

const struct sockaddr *dest_addr, socklen_t addrlen);

功能:傳送資料,

引數:    

dest_addr: 指定資料具體傳送給誰

addrlen :  大小

udp中可以使用send函式,但是需要先使用connect函式,但不是用於連線,是指定具體資料是傳送給誰。

1. udp**實現;

2. ftp檔案伺服器**實現;

華清遠見嵌入式培訓 所言非虛!

我起先也是不信的,但是最後的相信卻讓我在2019年的就業洪流中站穩了腳跟。不得不說,嵌入式培訓的學習過程,就像一條又一條正太曲線的首尾無縫鏈結。從沒有興趣到興趣盎然。大部分同學,在這苦悶的房間裡都找到了一點知識的趣味性。學了這個面試能不能底氣足一些?能的!幾近全部同學在四個月苦悶但是有趣的學習時間過...

華清遠見嵌入式學習day14 檔案IO

檔案io 開啟 操作 關閉 開啟檔案,獲取檔案描述符 include include include int open const char pathname,int flags int open const char pathname,int flags,mode t mode 功能 開啟檔案,獲...

作者 王姍姍,華清遠見嵌入式學院講師。

先來了解下什麼是標準 以及檔案 標準 標準i o是ansi c建立的乙個標準i o模型,是乙個標準函式包和stdio.h標頭檔案中的定義,具有一定的可移植性。標準io庫處理很多細節。例如快取分配,以優化長度執行io等。標準的io提供了三種型別的快取。1 全快取 當填滿標準io快取後才進行實際的io操...