91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

LINUX高性能網絡通信堵住筆記之UDP數據讀寫

發布時間:2020-08-12 01:57:29 來源:網絡 閱讀:1173 作者:jackdongting 欄目:建站服務器

2.UDP數據讀寫
2.1ssize_t recvfrom(int sockfd,const void buf,size_t len,int flags,struct socketaddr src_addr,socklen_t addrlen);
2.2 ssize_t sendto (int sockfd,const void
buf,size_t len,int flags,const struct sockaddr* dest_addr,socklen_t addrlen);
注:recvfrom/sendto 系統調用也可以用于面向連接(STREAM)的socket的數據讀寫,只需要把最后兩個參數設置為NULL
3.通用數據讀寫

ssize_t recvmsg(int sockfd,struct msghdr msg,int flags)
ssize_t sendmsg(int sockfd,struct msghdr
msg,int flags);

struct msghdr{
void msg_name; //socket地址
socklen_t msg_namelen; // socket地址長度
struct iovec
msg_iov; //分散的內存塊
int msg_iovlen; //分散內存塊的數量
void* msg_control; //指向輔助數據的起始位置
socklen_t msg_cintrollen; //輔助數據的大小
int msg_flags; //復制函數中的flags參數,并且在調用過程中更新
}

struct iovec{
void *iov_base; //內存起始地址
size_t iov_len; //這塊內存的長度
}

4.帶外標記

帶外數據何時到來?
傳輸層協議使用帶外數據(out-of-band,OOB)來發送一些重要的數據,如果通信一方有重要的數據需要通知對方時,協議能夠將這些數據快速地發送到對方。為了發送這些數據,協議一般不使用與普通數據相同的通道,而是使用另外的通道。linux系統的套接字機制支持低層協議發送和接受帶外數據。但是TCP協議沒有真正意義上的帶外數據。為了發送重要協議,TCP提供了一種稱為緊急模式(urgent mode)的機制。TCP協議在數據段中設置URG位,表示進入緊急模式。接收方可以對緊急模式采取特殊的處理。很容易看出來,這種方式數據不容易被阻塞,并且可以通過在我們的服務器端程序里面捕捉SIGURG信號來及時接受數據。這正是我們所要求的效果。

int sockatmark(int sockfd)

返回1的時候,我們利用帶有MSG_OOB標志的recv調用來接收帶外數據

如果不是返回0

5.地址信息函數

一個連接socket的本端socket地址和遠端的socket地址
int getsocketname(int sockfd,struct sockaddr address,socklen_t address_len)

int getpeername(int sockfd,struct sockaddr address,socklen_t address_len)

6.socket選項

fcntl系統調用是控制文件描述符屬性通用POSIX方法

專門設置socket文件描述符屬性的方法
int getsockopt(int sockfd,int level,int option_name,void option_value,socklen_t restrict option_len)
int setsockopt()

這一塊暫時不寫了

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南澳县| 巴中市| 东安县| 忻州市| 新昌县| 盱眙县| 清原| 米脂县| 银川市| 庆城县| 荣成市| 晋江市| 英超| 利川市| 军事| 兰西县| 贵州省| 辽中县| 禹城市| 饶河县| 平阴县| 九龙县| 吕梁市| 乌兰浩特市| 庆云县| 福州市| 泗水县| 桃江县| 濮阳市| 安陆市| 高密市| 信宜市| 浠水县| 台中市| 蒙山县| 长宁区| 长顺县| 昌乐县| 汉沽区| 韶山市| 保德县|