亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

鲁甸县| 张北县| 丰顺县| 纳雍县| 湛江市| 巫溪县| 阜阳市| 彭阳县| 安仁县| 循化| 晋州市| 华宁县| 涡阳县| 买车| 石狮市| 龙胜| 土默特左旗| 桃江县| 海安县| 龙岩市| 津市市| 英山县| 德格县| 筠连县| 西林县| 平潭县| 南昌市| 浑源县| 塘沽区| 库尔勒市| 武功县| 曲水县| 新田县| 四子王旗| 东光县| 玛多县| 长葛市| 陇西县| 固始县| 临潭县| 翁源县|