Linux socket accept尽信书不如无书
關于Linux socket 里面的?? int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen)函數,很多書籍都把第三個參數搞錯,以為第三個參數用來用來返回addr的類型,所以傳個指針進去,卻是表面上很像。一般情況下addrlen所指向的地址要是沒有初始化(不是addrlen沒有初始化,就像socklen_t a;sockelen_t addrlen=&a)都不會出現問題,但是要是你不幸運addrlen所指向的地址里存儲的值是負數,那就會出現奇怪的現象,那樣真的會很痛苦。所以切記什么事情都不要想當然,要是函數有返回值的,一定要通過返回值來判斷函數是否執行成功。下面再貼出Linux 官方關于accept的用法
?? The addrlen argument is a value-result argument: the caller? must? ini‐
?????? tialize? it? to contain the size (in bytes) of the structure pointed to
?????? by addr; on return it will contain the actual size of the peer address.
?盡信書不如無書
總結
以上是生活随笔為你收集整理的Linux socket accept尽信书不如无书的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浏览器中实现3D全景浏览
- 下一篇: Blender雕刻模块:如何在雕刻过程中