偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

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

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

sockfd相當(dāng)簡(jiǎn)單,是和listen()中一樣的套接字描述符。addr是個(gè)指向局部的數(shù)據(jù)結(jié)構(gòu)sockaddr_in的指針。這是要求接入的信息所要去的地方(你可以測(cè)定那個(gè)地址在那個(gè)端口呼叫你)。在它的地址傳遞給accept之前,addrlen是個(gè)局部的整形變量,設(shè)置為sizeof(structsockaddr_in)。accept將不會(huì)將多余的字節(jié)給addr。如果你放入的少些,那么它會(huì)通過(guò)改變addrlen的值反映出來(lái)。同樣,在錯(cuò)誤時(shí)返回-1,并設(shè)置全局錯(cuò)誤變量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);/*錯(cuò)誤檢查*/  
  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ù)注意事項(xiàng),在系統(tǒng)調(diào)用send()和recv()中你應(yīng)該使用新的套接字描述符new_fd。如果你只想讓一個(gè)連接進(jìn)來(lái),那么你可以使用close()去關(guān)閉原來(lái)的文件描述符sockfd來(lái)避免同一個(gè)端口更多的連接。

【編輯推薦】

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

2010-06-18 10:11:16

Linux Accep

2010-06-18 09:13:14

Linux Accep

2009-09-23 10:15:23

Linux curlLinux命令行工具

2009-08-07 17:12:07

C# DLL函數(shù)

2010-03-18 16:34:33

Linux命令

2010-06-09 17:48:15

Linux 編程工具

2009-08-12 10:11:18

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

2010-06-22 17:09:52

Linux Autom

2010-06-21 15:49:59

Linux apt是什

2010-06-30 12:46:18

Linux SNMP工

2009-12-24 15:59:58

Linux hal

2009-08-07 09:29:22

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

2009-12-23 19:13:40

Fedora Linu

2010-03-10 15:05:22

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

2010-03-16 11:20:53

Linux 優(yōu)化

2009-12-29 08:54:09

Ubuntu Linu

2010-06-21 17:10:02

Linux Arp命令

2010-06-11 11:15:33

Linux編程工具

2009-12-22 10:46:35

2010-03-11 10:52:49

Ubuntu Linu
點(diǎn)贊
收藏

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