採用socket通訊的send分析

2021-09-30 09:09:27 字數 563 閱讀 8724

核心版本為2.6.35.8 

採用socket通訊的send分析

1,send函式接收fd作為引數,陷入核心態,呼叫sys_sendmsg

2,syscall_define3(sendmsg, int, fd, struct msghdr __user *, msg, unsigned, flags)最終編譯為sys_sendmsg

sys_sendmsg 分析

1,資料處理,沒太理解

2,sock_lookup_light()//通過fd,獲得當前程序對應於fd的struct file。並返回file的私有資料指標(該指標指向struct socket,在sock_map_file中初始化)。

3,更多的資料檢查。

4,sock_sendmsg() //將資料傳送到socket層

sock_sendmsg() -> __sock_sendmsg -> sock->ops->sendmsg (對於inet域,tcp協議sendmsg被初始化為tcp_sendmsg)

tcp_sendmsg 具體負責傳輸層協議的操作細節,並傳到網路層處理函式,後面再具體分析。

Dubbo底層採用Socket進行通訊詳解

基本的通訊方法有並行通訊和序列通訊兩種。1.一組資訊 通常是位元組 的各位資料被同時傳送的通訊方法稱為並行通訊。並行通訊依靠並行i o介面實現。並行通訊速度快,但傳輸線根數多,只適用於近距離 相距數公尺 的通訊。2.一組資訊的各位資料被逐位順序傳送的通訊方式稱為序列通訊。序列通訊可通過序列介面來實現...

Ajax中的send採用的方法

ajax中send方法引數的使用 一般情況下,使用ajax提交的引數多是些簡單的字串,可以直接使用get方法將要提交的引數寫到open方法的url引數中,此時send方法的引數為null。例如 此 外,也可以使用send方法傳遞引數。使用send方法傳遞引數使用的是post方法,需要設定conten...

關於socket中的send函式

關於send其實我是要呼叫send函式,但是在乙個地方看到了下面的一段話 當呼叫該函式時,send先比較待傳送資料的長度len和套接字s的傳送緩衝區的長度,如果len大於s的傳送緩衝區的長度,該函式返回socket error 如果len小於或者等於s的傳送緩衝區的長度,那麼send先檢查協議是否正...