Vert x的TCP服務端和客戶端配置

2021-09-18 04:41:42 字數 2073 閱讀 2497

本篇:netserveroptions:

io.vertx.core.net_netserveroptions:

空閒時間,預設為0,無空閒檢測。

注:達到後斷開長連線。

setidletimeout(int idletimeout)

set the idle timeout, default time unit is seconds.

空閒時間的單位,預設為秒(s)。

setidletimeoutunit(timeunit idletimeoutunit)

set the idle timeout unit.

啟動tcp保活,預設為不保活。

注:保活檢測時間間隔為2小時,無開放的設定方法。

settcpkeepalive(boolean tcpkeepalive)

set whether tcp keep alive is enabled

禁用nagle演算法,預設為禁用。

注:包體過小時,啟用nagle演算法,顯著減小網路阻塞。包體大小相對於包頭,包頭固定部分20位元組,可變部分0至40位元組。

簡單講, nagel演算法的規則是:

如果傳送內容大於1個mss, 立即傳送;

如果之前沒有包未被確認, 立即傳送;

如果之前有包未被確認, 快取傳送內容;

如果收到ack, 立即傳送快取的內容。

settcpnodelay(boolean tcpnodelay)

set whether tcp no delay is enabled

加強的nagle演算法,預設為禁用。

注:過程和nagle演算法類似,都是累計資料然後傳送。但它沒有 nagle中1的限制,所以,在設定cork後,即使所有ack都已經收到,但我還是不想傳送資料,我還想繼續等待應用層更多的資料,所以它的效果比nagle更好。效率上與nagle演算法相比,nagle演算法主要避免網路因為太多的小包(協議頭的比例非常之大)而擁塞,而cork演算法則是為了提高網路的利用率,使得總體上協議頭占用的比例盡可能的小。

settcpcork(boolean tcpcork)

enable the tcp_cork option - only with linux native transport.

支援伺服器名稱指示(server name indication),預設不支援。

注:乙個伺服器上可以為多個網域名稱提供服務。

setsni(boolean sni)

set whether the server supports server name indiciation

延遲關閉的時間(單位:秒),預設為-1;注:設定延遲關閉的時間,等待套接字緩衝區中的資料傳送完成。

setsolinger(int solinger)

set whether so_linger keep alive is enabled

支援tcp快速確認,預設不支援。

注:ack(acknowledgement),確認字元。在資料通訊中,接收站發給傳送站的一種傳輸類控制字元。表示發來的資料已確認接收無誤。

settcpquickack(boolean tcpquickack)

enable the tcp_quickack option - only with linux native transport.

settcpfastopen(boolean tcpfastopen)

enable the tcp_fastopen option - only with linux native transport.

settrafficclass(int trafficclass)

set the value of traffic class

settrustoptions(trustoptions options)

set the trust options.

setusealpn(boolean usealpn)

set the alpn usage.

setusepooledbuffers(boolean usepooledbuffers)

set whether netty pooled buffers are enabled

TCP服務端和客戶端(1)

在陳述這個小例項之前,首先將mafile寫出來 makefile all client server all規則,他依賴於client和server規則 client tcp process.o tcp client.o client規則生成客戶端程式 gcc o client tcp proces...

TCP服務端和客戶端 8

在process.c的基礎上,繼續變換方案,將使用到readv和writev。並且使用到向量方式進行資料的傳送和接收。並在收到相應的訊號後釋放資源。include include include include include static struct iovec vs null,vc null ...

TCP服務端和客戶端 9

繼續對process.c 進行改進,用recvmsg和sendmsg來進行替換。將向量掛載到msghdr的msg iov的成員變數上進行操作。include include include include include include include static struct iovec vs ...