linux 發數據包的錯誤碼

1、EBADF---找不到對應的文件對象
2、連接並未建立,等待直到進入TCPF_ESTABLISHED或者TCPF_CLOSE_WAIT
   1、ERESTARTSYS ---當前套接字上有事件,調度時間到了
   2、EINTR--當前套接字上有事件,被中斷
   3、EPIPE --連接狀體沒不是TCPF_SYN_SENT | TCPF_SYN_RECV,直接返回
   4、EAGAIN --非阻塞,直接返回

3、檢查當前的shutdown標誌和連接上是否有錯誤
   1、EPIPE
4、可能發送緩衝區不足
   發送的字節數爲0,需要重新發送
 
5、可能內存不足
   發送的字節數爲0,需要重新發送
   
6、返回發送的字節數

   表示發送的字節數

參考內核代碼版本2.6.32

int tcp_sendmsg(struct kiocb *iocb, struct socket *sock, struct msghdr *msg,size_t size)

發佈了28 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章