成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux Accept函數簡單介紹

運維 系統運維
sockfd相當簡單,是和listen()中一樣的套接字描述符。addr是個指向局部的數據結構sockaddr_in的指針。這是要求接入的信息所要去的地方(你可以測定那個地址在那個端口呼叫你)。

系統調用accept()會有點古怪的地方的!你可以想象發生這樣的事情:有人從很遠的地方通過一個你在偵聽(listen())的端口連接(connect())到你的機器。它的連接將加入到等待接受(accept())的隊列中。你調用accept()告訴它你有空閑的連接。它將返回一個新的套接字文件描述符!這樣你就有兩個套接字了,原來的一個還在偵聽你的那個端口,新的在準備發送(send())和接收(recv())數據。這就是Linux Accept函數的過程!

Linux Accept函數是這樣定義的:
#include<sys/socket.h>
intaccept(intsockfd,void*addr,int*addrlen);

sockfd相當簡單,是和listen()中一樣的套接字描述符。addr是個指向局部的數據結構sockaddr_in的指針。這是要求接入的信息所要去的地方(你可以測定那個地址在那個端口呼叫你)。在它的地址傳遞給accept之前,addrlen是個局部的整形變量,設置為sizeof(structsockaddr_in)。accept將不會將多余的字節給addr。如果你放入的少些,那么它會通過改變addrlen的值反映出來。同樣,在錯誤時返回-1,并設置全局錯誤變量errno。
現在是你應該熟悉的代碼片段。
 

  1. #include<string.h> 
  2. #include<sys/socket.h> 
  3. #include<sys/types.h> 
  4. #defineMYPORT3490/*用戶接入端口*/  
  5. #defineBACKLOG10/*多少等待連接控制*/  
  6. main()  
  7. {  
  8. intsockfd,new_fd;/*listenonsock_fd,newconnectiononnew_fd*/  
  9. structsockaddr_inmy_addr;/*地址信息*/  
  10. structsockaddr_intheir_addr;/*connector 'saddressinformation*/  
  11. intsin_size;  
  12. sockfd=socket(AF_INET,SOCK_STREAM,0);/*錯誤檢查*/  
  13. my_addr.sin_family=AF_INET;/*hostbyteorder*/  
  14. my_addr.sin_port=htons(MYPORT);/*short,networkbyteorder*/  
  15. my_addr.sin_addr.s_addr=INADDR_ANY;/*auto-fillwithmyIP*/  
  16. bzero(&(my_addr.sin_zero),;/*zerotherestofthestruct*/  
  17. /*don 'tforgetyourerrorcheckingforthesecalls:*/  
  18. bind(sockfd,(structsockaddr*)&my_addr,sizeof(structsockaddr));  
  19. listen(sockfd,BACKLOG);  
  20. sin_size=sizeof(structsockaddr_in);  
  21. new_fd=accept(sockfd,&their_addr,&sin_size);  
  22. .  
  23. .  
  24. .  

Linux Accept函數注意事項,在系統調用send()和recv()中你應該使用新的套接字描述符new_fd。如果你只想讓一個連接進來,那么你可以使用close()去關閉原來的文件描述符sockfd來避免同一個端口更多的連接。

【編輯推薦】

  1. Linux 查看磁盤空間實現代碼介紹
  2. Linux操作系統需要微軟的十大幫助
  3. 探尋Linux到底需要多低的配置
  4. Linux測試工具tcpdump監視TCP/IP連接命令介紹
  5. Linux流量控制實例應用介紹
責任編輯:chenqingxiang 來源: CSDN
相關推薦

2010-06-18 10:11:16

Linux Accep

2010-06-18 09:13:14

Linux Accep

2010-03-18 16:34:33

Linux命令

2010-06-09 17:48:15

Linux 編程工具

2009-09-23 10:15:23

Linux curlLinux命令行工具

2009-08-07 17:12:07

C# DLL函數

2009-08-07 09:29:22

C#數組C#函數

2009-12-23 19:13:40

Fedora Linu

2010-03-10 15:05:22

linux系統備份方式

2010-03-16 11:20:53

Linux 優化

2009-12-29 08:54:09

Ubuntu Linu

2010-06-21 17:10:02

Linux Arp命令

2010-06-22 17:09:52

Linux Autom

2010-06-30 12:46:18

Linux SNMP工

2009-12-24 15:59:58

Linux hal

2010-06-21 15:49:59

Linux apt是什

2009-08-12 10:11:18

C# 回調函數

2010-06-11 11:15:33

Linux編程工具

2009-12-25 14:44:16

Linux vi命令

2009-12-30 17:25:34

Linux Ubunt
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 麻豆av一区二区三区久久 | 亚洲一区二区精品视频在线观看 | 91久久| 午夜精品 | 国产一区二区三区久久久久久久久 | 狠狠干五月天 | 亚洲精品电影在线观看 | 伊人伊成久久人综合网站 | 国产乱码久久久久久 | 欧美精品一区二区在线观看 | 区一区二区三在线观看 | 91精产国品一二三区 | 91视频在线看 | 亚洲 中文 欧美 | 亚洲精品日本 | 国产一区 日韩 | 中文字幕在线免费观看 | 国产精品二区三区 | 91国产精品在线 | 亚洲国产黄色av | 高清欧美性猛交xxxx黑人猛交 | 亚洲国产网址 | 成人午夜在线观看 | 美女一级毛片 | 天天躁天天操 | 91网视频| 精品欧美 | 金莲网| 午夜看片| 成人精品鲁一区一区二区 | 国产一区免费 | 日韩精品在线免费 | 国产视频久久 | 91精品久久久久久久久久小网站 | 国产精品久久久久久久久久 | av日韩精品 | 在线色网| 久久大陆| 激情亚洲 | 国产免费av在线 | 久久久久国产 |