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操...