自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux Accept函數(shù)簡單介紹

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

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

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

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

  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函數(shù)注意事項,在系統(tǒng)調(diào)用send()和recv()中你應(yīng)該使用新的套接字描述符new_fd。如果你只想讓一個連接進(jìn)來,那么你可以使用close()去關(guān)閉原來的文件描述符sockfd來避免同一個端口更多的連接。

【編輯推薦】

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

2010-06-18 10:11:16

Linux Accep

2010-06-18 09:13:14

Linux Accep

2010-06-09 17:48:15

Linux 編程工具

2010-03-18 16:34:33

Linux命令

2009-08-07 17:12:07

C# DLL函數(shù)

2009-09-23 10:15:23

Linux curlLinux命令行工具

2009-08-07 09:29:22

C#數(shù)組C#函數(shù)

2010-06-21 17:10:02

Linux Arp命令

2010-03-16 11:20:53

Linux 優(yōu)化

2010-03-10 15:05:22

linux系統(tǒng)備份方式

2009-12-23 19:13:40

Fedora Linu

2009-12-29 08:54:09

Ubuntu Linu

2009-08-12 10:11:18

C# 回調(diào)函數(shù)

2010-06-11 11:15:33

Linux編程工具

2009-12-24 15:59:58

Linux hal

2010-06-22 17:09:52

Linux Autom

2010-06-30 12:46:18

Linux SNMP工

2010-06-21 15:49:59

Linux apt是什

2010-06-21 16:25:38

Linux Arch

2010-03-02 11:32:39

Linux判斷符
點贊
收藏

51CTO技術(shù)棧公眾號