當前位置:首頁 » 文件管理 » linux命令查詢socket緩存默認值

linux命令查詢socket緩存默認值

發布時間: 2022-07-03 14:45:36

linux socket 怎麼查看發送緩沖

int buflen = 65536*10;
設置讀緩存大小
if(0!=setsockopt(m_sendUdpSock,SOL_SOCKET,SO_RCVBUF,&buflen,4))
{
return OS_ERROR;

}
設置寫緩存大小
if(0!=setsockopt(m_sendUdpSock,SOL_SOCKET,SO_SNDBUF,&buflen,4))
{
return OS_ERROR;

}
socklen_t getnumlen=4;
讀取寫緩存大小
if(0!=getsockopt(g_sendUdpSock,SOL_SOCKET,SO_RCVBUF,&buflen,&getnumlen))
{
printf("\n%s\n",strerror(errno));
return OS_ERROR;

}

⑵ linux下socket接收緩沖區有多大如何查看和修改,望高手賜教

int buflen = 65536*10;
設置讀緩存大小
if(0!=setsockopt(m_sendUdpSock,SOL_SOCKET,SO_RCVBUF,&buflen,4))
{
return OS_ERROR;

}
設置寫緩存大小
if(0!=setsockopt(m_sendUdpSock,SOL_SOCKET,SO_SNDBUF,&buflen,4))
{
return OS_ERROR;

}
socklen_t getnumlen=4;
讀取寫緩存大小
if(0!=getsockopt(g_sendUdpSock,SOL_SOCKET,SO_RCVBUF,&buflen,&getnumlen))
{
printf("\n%s\n",strerror(errno));
return OS_ERROR;

}

⑶ linux下面怎麼查詢某個進程正在使用的socket句柄數量

一般來說,單個進程,最大文件句柄數(包括socket套接字)是1024,這個是默認值,可以用ulimit修改。不知道你是不是問的這個東西。

⑷ linux下,如何查看socket接收緩沖區有多大後修改

read的返回值中可以獲得大小,read結束之前你是沒法知道對方到底發多少給你的。通常的做法,我們會在通訊的報文前加上一些控制信息,比如前4個byte存放數據大小(是否包含這4個byte自己定義)、數據是否分片、每片大小、MAC、控制字元(防止其他程序誤發)等等。

⑸ Linux如何清空Socket緩沖區

socket不是這么接收數據的
由於socket是以數據流的形式發送數據,接收方不知道對方一次性發送了多少數據,也能保證對方一次性發送的數據能在同一刻接收到,所以Receive方法是這么工作的:
接受一個byye[]類型的參數作為緩沖區,在經過一定的時間後把接收到的數據填充到這個緩沖區裡面,並且返回實際接收到數據的長度,這個實際接收到的數據長度有可能為0(沒有接收到數據)、大於0小於緩沖區的長度(接收到數據,但是沒有我們預期的多)、等於緩沖區的長度(說明接收到的數據大於等於我們預期的長度)。
每次接收緩沖區都用同一個byte[] byteMessage,並且你沒有檢查接收到的數據長度,所以第一次你接收到的數據是123456,第二次你只接收到了8,但是緩沖區裡面還有23456,所以加起來就是823456了。
socket接收緩沖區的大小有講究,設置大了接收起來慢,因為它要等盡可能多的數據接收到了再返回;設置小了需要重復多次調用接收方法才能把數據接收完,socket有個屬性,標識了系統默認的接收緩沖區大小,可以參考這個!
還有就是用recv讀取,但是由於不知道緩存里有多少數據,如果是阻塞模式,到最後必然等到超時才知道數據已經讀取完畢,這是個問題。
另一個是用fgetc,通過返回判斷是否是feof:
whlie (1) { a=fgetc(f);if (feof(f)) break;//…
b=fgetc(f);if (feof(f)) break;//…}當然,我不知道讀取完畢後最後一次調用fgetc會不會堵塞,需要測試。
在非阻塞模式下,我們用recv就可以輕松搞定了,但是阻塞模式下,由於我們不知道緩沖區有多少數據,不能直接調用recv嘗試清除。
使用一個小小的技巧,利用select函數,我們可以輕松搞定這個問題:
select函數用於監視一個文件描述符集合,如果集合中的描述符沒有變化,則一直阻塞在這里,直到超時時間到達;在超時時間內,一旦某個描述符觸發了你所關心的事件,select立即返回,通過檢索文件描述符集合處理相應事件;select函數出錯則返回小於零的值,如果有事件觸發,則返回觸發事件的描述符個數;如果超時,返回0,即沒有數據可讀。
重點在於:我們可以用select的超時特性,將超時時間設置為0,通過檢測select的返回值,就可以判斷緩沖是否被清空。通過這個技巧,使一個阻塞的socket成了『非阻塞』socket.
現在就可以得出解決方案了:使用select函數來監視要清空的socket描述符,並把超時時間設置為0,每次讀取一個位元組然後丟棄(或者按照業務需要進行處理,隨你便了),一旦select返回0,說明緩沖區沒數據了(「超時」了)。
struct timeval tmOut;tmOut.tv_sec = 0;tmOut.tv_usec = 0;fd_set fds;FD_ZEROS(&fds);FD_SET(skt, &fds);
int nRet;
char tmp[2];
memset(tmp, 0, sizeof(tmp));
while(1)
{ nRet= select(FD_SETSIZE, &fds, NULL, NULL, &tmOut);if(nRet== 0) break;recv(skt, tmp, 1,0);}
這種方式的好處是,不再需要用recv、recvfrom等阻塞函數直接去讀取,而是使用select,利用其超時特性檢測緩沖區是否為空來判斷是否有數據,有數據時才調用recv進行清除。
有人說同樣可以用recv和socket的超時設置去清空啊,這個沒錯,但是你需要直接對socket描述符設置超時時間,而為了清空數據而直接修改socket描述符的屬性,可能會影響到其他地方的使用,造成系統奇奇怪怪的問題,所以,不推薦使用。

⑹ linux 查看使用了多少SOCKET

Linux系統中,ss命令可用於查看系統的socket的狀態。

1、命令格式:
ss [參數]
ss [參數] [過濾]
2、命令功能:
ss(Socket Statistics的縮寫)命令可以用來獲取 socket統計信息,此命令輸出的結果類似於
netstat輸出的內容,但它能顯示更多更詳細的 TCP連接狀態的信息,且比 netstat 更快速高效。它使用了 TCP協議棧中
tcp_diag(是一個用於分析統計的模塊),能直接從獲得第一手內核信息,這就使得 ss命令快捷高效。在沒有
tcp_diag,ss也可以正常運行。
3、命令參數:
-h, --help 幫助信息
-V, --version 程序版本信息
-n, --numeric 不解析服務名稱
-r, --resolve 解析主機名
-a, --all 顯示所有套接字(sockets)
-l, --listening 顯示監聽狀態的套接字(sockets)
-o, --options 顯示計時器信息
-e, --extended 顯示詳細的套接字(sockets)信息
-m, --memory 顯示套接字(socket)的內存使用情況
-p, --processes 顯示使用套接字(socket)的進程
-i, --info 顯示 TCP內部信息
-s, --summary 顯示套接字(socket)使用概況
-4, --ipv4 僅顯示IPv4的套接字(sockets)
-6, --ipv6 僅顯示IPv6的套接字(sockets)
-0, --packet 顯示 PACKET 套接字(socket)
-t, --tcp 僅顯示 TCP套接字(sockets)
-u, --udp 僅顯示 UCP套接字(sockets)
-d, --dccp 僅顯示 DCCP套接字(sockets)
-w, --raw 僅顯示 RAW套接字(sockets)
-x, --unix 僅顯示 Unix套接字(sockets)
-f, --family=FAMILY 顯示 FAMILY類型的套接字(sockets),FAMILY可選,支持 unix, inet, inet6, link, netlink
-A, --query=QUERY, --socket=QUERY
QUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]
-D, --diag=FILE 將原始TCP套接字(sockets)信息轉儲到文件
-F, --filter=FILE 從文件中都去過濾器信息
FILTER := [ state TCP-STATE ] [ EXPRESSION ]
4、使用實例:
顯示TCP連接
命令:ss -t -a
輸出:
代碼如下:
[root@localhost ~]# ss -t -a
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 0 127.0.0.1:smux *:*
LISTEN 0 0 *:3690 *:*
LISTEN 0 0 *:ssh *:*

ESTAB 0 0 192.168.120.204:ssh 10.2.0.68:49368
[root@localhost ~]#

⑺ linux tcp 通過setsockopt設置接收緩存區有什麼用

Socket的send函數在執行時報EAGAIN的錯誤

當客戶通過Socket提供的send函數發送大的數據包時,就可能返回一個EGGAIN的錯誤。該錯誤產生的原因是由於send 函數中的size變數大小超過了tcp_sendspace的值。tcp_sendspace定義了應用在調用send之前能夠在kernel中緩存的數據量。當應用程序在socket中設置了O_NDELAY或者O_NONBLOCK屬性後,如果發送緩存被占滿,send就會返回EAGAIN的錯誤。

為了消除該錯誤,有三種方法可以選擇:
1.調大tcp_sendspace,使之大於send中的size參數
---no -p -o tcp_sendspace=65536

2.在調用send前,在setsockopt函數中為SNDBUF設置更大的值

3.使用write替代send,因為write沒有設置O_NDELAY或者O_NONBLOCK

1. tcp 收發緩沖區默認值

[root@qljt core]# cat /proc/sys/net/ipv4/tcp_rmem
4096 87380 4161536

87380 :tcp接收緩沖區的默認值

[root@qljt core]# cat /proc/sys/net/ipv4/tcp_wmem
4096 16384 4161536

16384 : tcp 發送緩沖區的默認值

2. tcp 或udp收發緩沖區最大值

[root@qljt core]# cat /proc/sys/net/core/rmem_max
131071

131071:tcp 或 udp 接收緩沖區最大可設置值的一半。

也就是說調用 setsockopt(s, SOL_SOCKET, SO_RCVBUF, &rcv_size, &optlen); 時rcv_size 如果超過 131071,那麼

getsockopt(s, SOL_SOCKET, SO_RCVBUF, &rcv_size, &optlen); 去到的值就等於 131071 * 2 = 262142

[root@qljt core]# cat /proc/sys/net/core/wmem_max
131071

131071:tcp 或 udp 發送緩沖區最大可設置值得一半。

跟上面同一個道理

3. udp收發緩沖區默認值

[root@qljt core]# cat /proc/sys/net/core/rmem_default
111616:udp接收緩沖區的默認值

[root@qljt core]# cat /proc/sys/net/core/wmem_default
111616

111616:udp發送緩沖區的默認值

. tcp 或udp收發緩沖區最小值

tcp 或udp接收緩沖區的最小值為 256 bytes,由內核的宏決定;

tcp 或udp發送緩沖區的最小值為 2048 bytes,由內核的宏決定

setsockopt設置socket狀態
1.closesocket(一般不會立即關閉而經歷TIME_WAIT的過程)後想繼續重用該socket:
BOOL bReuseaddr=TRUE;
setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));

2. 如果要已經處於連接狀態的soket在調用closesocket後強制關閉,不經歷TIME_WAIT的過程:
BOOL bDontLinger = FALSE;
setsockopt(s,SOL_SOCKET,SO_DONTLINGER,(const char*)&bDontLinger,sizeof(BOOL));

3.在send(),recv()過程中有時由於網路狀況等原因,發收不能預期進行,而設置收發時限:
int nNetTimeout=1000;//1秒
//發送時限
setsockopt(socket,SOL_S0CKET,SO_SNDTIMEO,(char *)&nNetTimeout,sizeof(int));
//接收時限
setsockopt(socket,SOL_S0CKET,SO_RCVTIMEO,(char *)&nNetTimeout,sizeof(int));

4.在send()的時候,返回的是實際發送出去的位元組(同步)或發送到socket緩沖區的位元組(非同步);系統默認的狀態發送和接收一次為8688位元組(約為8.5K);在實際的過程中發送數據
和接收數據量比較大,可以設置socket緩沖區,而避免了send(),recv()不斷的循環收發:
// 接收緩沖區
int nRecvBuf=32*1024;//設置為32K
setsockopt(s,SOL_SOCKET,SO_RCVBUF,(const char*)&nRecvBuf,sizeof(int));
//發送緩沖區
int nSendBuf=32*1024;//設置為32K
setsockopt(s,SOL_SOCKET,SO_SNDBUF,(const char*)&nSendBuf,sizeof(int));

5. 如果在發送數據的時,希望不經歷由系統緩沖區到socket緩沖區的拷貝而影響程序的性能:
int nZero=0;
setsockopt(socket,SOL_S0CKET,SO_SNDBUF,(char *)&nZero,sizeof(nZero));

6.同上在recv()完成上述功能(默認情況是將socket緩沖區的內容拷貝到系統緩沖區):
int nZero=0;
setsockopt(socket,SOL_S0CKET,SO_RCVBUF,(char *)&nZero,sizeof(int));

7.一般在發送UDP數據報的時候,希望該socket發送的數據具有廣播特性:
BOOL bBroadcast=TRUE;
setsockopt(s,SOL_SOCKET,SO_BROADCAST,(const char*)&bBroadcast,sizeof(BOOL));

8.在client連接伺服器過程中,如果處於非阻塞模式下的socket在connect()的過程中可以設置connect()延時,直到accpet()被呼叫(本函數設置只有在非阻塞的過程中有顯著的
作用,在阻塞的函數調用中作用不大)
BOOL bConditionalAccept=TRUE;
setsockopt(s,SOL_SOCKET,SO_CONDITIONAL_ACCEPT,(const char*)&bConditionalAccept,sizeof(BOOL));

9.如果在發送數據的過程中(send()沒有完成,還有數據沒發送)而調用了closesocket(),以前我們一般採取的措施是"從容關閉"shutdown(s,SD_BOTH),但是數據是肯定丟失了,如何設置讓程序滿足具體應用的要求(即讓沒發完的數據發送出去後在關閉socket)?
struct linger {
u_short l_onoff;
u_short l_linger;
};
linger m_sLinger;
m_sLinger.l_onoff=1;//(在closesocket()調用,但是還有數據沒發送完畢的時候容許逗留)
// 如果m_sLinger.l_onoff=0;則功能和2.)作用相同;
m_sLinger.l_linger=5;//(容許逗留的時間為5秒)
setsockopt(s,SOL_SOCKET,SO_LINGER,(const char*)&m_sLinger,sizeof(linger));

設置套介面的選項。
#include <winsock.h>
int PASCAL FAR setsockopt( SOCKET s, int level, int optname,
const char FAR* optval, int optlen);
s:標識一個套介面的描述字。
level:選項定義的層次;目前僅支持SOL_SOCKET和IPPROTO_TCP層次。
optname:需設置的選項。
optval:指針,指向存放選項值的緩沖區。
optlen:optval緩沖區的長度。
注釋:
setsockopt()函數用於任意類型、任意狀態套介面的設置選項值。盡管在不同協議層上存在選項,但本函數僅定義了最高的「套介面」層次上的選項。選項影響套介面的操作,諸如加急數據是否在普通數據流中接收,廣播數據是否可以從套介面發送等等。
有兩種套介面的選項:一種是布爾型選項,允許或禁止一種特性;另一種是整形或結構選項。允許一個布爾型選項,則將optval指向非零整形數;禁止一個選項optval指向一個等於零的整形數。對於布爾型選項,optlen應等於sizeof(int);對其他選項,optval指向包含所需選項的整形數或結構,而optlen則為整形數或結構的長度。SO_LINGER選項用於控制下述情況的行動:套介面上有排隊的待發送數據,且 closesocket()調用已執行。參見closesocket()函數中關於SO_LINGER選項對closesocket()語義的影響。應用程序通過創建一個linger結構來設置相應的操作特性:
struct linger {
int l_onoff;
int l_linger;
};
為了允許SO_LINGER,應用程序應將l_onoff設為非零,將l_linger設為零或需要的超時值(以秒為單位),然後調用setsockopt()。為了允許SO_DONTLINGER(亦即禁止SO_LINGER),l_onoff應設為零,然後調用setsockopt()。
預設條件下,一個套介面不能與一個已在使用中的本地地址捆綁(參見bind())。但有時會需要「重用」地址。因為每一個連接都由本地地址和遠端地址的組合唯一確定,所以只要遠端地址不同,兩個套介面與一個地址捆綁並無大礙。為了通知WINDOWS套介面實現不要因為一個地址已被一個套介面使用就不讓它與另一個套介面捆綁,應用程序可在bind()調用前先設置SO_REUSEADDR選項。請注意僅在bind()調用時該選項才被解釋;故此無需(但也無害)將一個不會共用地址的套介面設置該選項,或者在bind()對這個或其他套介面無影響情況下設置或清除這一選項。
一個應用程序可以通過打開SO_KEEPALIVE選項,使得WINDOWS套介面實現在TCP連接情況下允許使用「保持活動」包。一個WINDOWS套介面實現並不是必需支持「保持活動」,但是如果支持的話,具體的語義將與實現有關,應遵守RFC1122「Internet主機要求-通訊層」中第 4.2.3.6節的規范。如果有關連接由於「保持活動」而失效,則進行中的任何對該套介面的調用都將以WSAENETRESET錯誤返回,後續的任何調用將以WSAENOTCONN錯誤返回。
TCP_NODELAY選項禁止Nagle演算法。Nagle演算法通過將未確認的數據存入緩沖區直到蓄足一個包一起發送的方法,來減少主機發送的零碎小數據包的數目。但對於某些應用來說,這種演算法將降低系統性能。所以TCP_NODELAY可用來將此演算法關閉。應用程序編寫者只有在確切了解它的效果並確實需要的情況下,才設置TCP_NODELAY選項,因為設置後對網路性能有明顯的負面影響。TCP_NODELAY是唯一使用IPPROTO_TCP層的選項,其他所有選項都使用SOL_SOCKET層。
如果設置了SO_DEBUG選項,WINDOWS套介面供應商被鼓勵(但不是必需)提供輸出相應的調試信息。但產生調試信息的機制以及調試信息的形式已超出本規范的討論范圍。
setsockopt()支持下列選項。其中「類型」表明optval所指數據的類型。
選項 類型 意義
SO_BROADCAST BOOL 允許套介面傳送廣播信息。
SO_DEBUG BOOL 記錄調試信息。
SO_DONTLINER BOOL 不要因為數據未發送就阻塞關閉操作。設置本選項相當於將SO_LINGER的l_onoff元素置為零。
SO_DONTROUTE BOOL 禁止選徑;直接傳送。
SO_KEEPALIVE BOOL 發送「保持活動」包。
SO_LINGER struct linger FAR* 如關閉時有未發送數據,則逗留。
SO_OOBINLINE BOOL 在常規數據流中接收帶外數據。
SO_RCVBUF int 為接收確定緩沖區大小。
SO_REUSEADDR BOOL 允許套介面和一個已在使用中的地址捆綁(參見bind())。
SO_SNDBUF int 指定發送緩沖區大小。
TCP_NODELAY BOOL 禁止發送合並的Nagle演算法。
setsockopt()不支持的BSD選項有:
選項名 類型 意義
SO_ACCEPTCONN BOOL 套介面在監聽。
SO_ERROR int 獲取錯誤狀態並清除。
SO_RCVLOWAT int 接收低級水印。
SO_RCVTIMEO int 接收超時。
SO_SNDLOWAT int 發送低級水印。
SO_SNDTIMEO int 發送超時。
SO_TYPE int 套介面類型。
IP_OPTIONS 在IP頭中設置選項。
返回值:
若無錯誤發生,setsockopt()返回0。否則的話,返回SOCKET_ERROR錯誤,應用程序可通過WSAGetLastError()獲取相應錯誤代碼。
錯誤代碼:
WSANOTINITIALISED:在使用此API之前應首先成功地調用WSAStartup()。
WSAENETDOWN:WINDOWS套介面實現檢測到網路子系統失效。
WSAEFAULT:optval不是進程地址空間中的一個有效部分。
WSAEINPROGRESS:一個阻塞的WINDOWS套介面調用正在運行中。
WSAEINVAL:level值非法,或optval中的信息非法。
WSAENETRESET:當SO_KEEPALIVE設置後連接超時。
WSAENOPROTOOPT:未知或不支持選項。其中,SOCK_STREAM類型的套介面不支持SO_BROADCAST選項,SOCK_DGRAM 類型的套介面不支持SO_DONTLINGER 、SO_KEEPALIVE、SO_LINGER和SO_OOBINLINE選項。
WSAENOTCONN:當設置SO_KEEPALIVE後連接被復位。
WSAENOTSOCK:描述字不是一個套介面。

⑻ Linux怎麼使用ss命令查看系統的socket狀態,Linux,socket

嗯 你需要關閉掉當前的socket,重新建立一個socket,因為這個TCP是面向連接的,這個連接已經關閉,你只能夠再重新創建一個了。

⑼ Linux怎麼使用ss命令查看系統的socket狀態

Linux系統中,ss命令可用於查看系統的socket的狀態。
1、命令格式:
ss [參數]
ss [參數] [過濾]
2、命令功能:
ss(Socket Statistics的縮寫)命令可以用來獲取 socket統計信息,此命令輸出的結果類似於
netstat輸出的內容,但它能顯示更多更詳細的 TCP連接狀態的信息,且比 netstat 更快速高效。它使用了 TCP協議棧中
tcp_diag(是一個用於分析統計的模塊),能直接從獲得第一手內核信息,這就使得 ss命令快捷高效。在沒有
tcp_diag,ss也可以正常運行。
3、命令參數:
-h, --help 幫助信息
-V, --version 程序版本信息
-n, --numeric 不解析服務名稱
-r, --resolve 解析主機名
-a, --all 顯示所有套接字(sockets)
-l, --listening 顯示監聽狀態的套接字(sockets)
-o, --options 顯示計時器信息
-e, --extended 顯示詳細的套接字(sockets)信息
-m, --memory 顯示套接字(socket)的內存使用情況
-p, --processes 顯示使用套接字(socket)的進程
-i, --info 顯示 TCP內部信息
-s, --summary 顯示套接字(socket)使用概況
-4, --ipv4 僅顯示IPv4的套接字(sockets)
-6, --ipv6 僅顯示IPv6的套接字(sockets)
-0, --packet 顯示 PACKET 套接字(socket)
-t, --tcp 僅顯示 TCP套接字(sockets)
-u, --udp 僅顯示 UCP套接字(sockets)
-d, --dccp 僅顯示 DCCP套接字(sockets)
-w, --raw 僅顯示 RAW套接字(sockets)
-x, --unix 僅顯示 Unix套接字(sockets)
-f, --family=FAMILY 顯示 FAMILY類型的套接字(sockets),FAMILY可選,支持 unix, inet, inet6, link, netlink
-A, --query=QUERY, --socket=QUERY
QUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]
-D, --diag=FILE 將原始TCP套接字(sockets)信息轉儲到文件
-F, --filter=FILE 從文件中都去過濾器信息
FILTER := [ state TCP-STATE ] [ EXPRESSION ]
4、使用實例:

⑽ 修改linux系統socket緩沖區大小

進行socket編程有時候可能需要修改下socket的接收緩沖區大小,這里可以使用 setsockopt 函數,但是如果需要修改的緩沖區很大(比如500MB),則還需要修改系統內核的TCP/IP參數,不然接收緩沖區大小會收到內核參數的限制,所以需要改兩個地方。下面以把socket接收緩沖區修改為500MB說明一下要作的修改。《Linux就該這么學》

  • 修改內核TCP/IP參數

在終端用sysctl命令修改socket最大緩沖區限制:

sudo sysctl -w net.core.rmem_max=5242880001

  • 在代碼中用setsockopt函數修改SO_RCVBUF選項

int recvbuff = 500*1024*1024;
if(setsockopt(sockfd, SOL_SOCKET, SO_RCVBUF, (const char*)&recvbuff, sizeof(int)) == -1)
printf("setsocket error ");
else
printf("setsocket success ");12345

以上兩點,只改第1點,一個socket只會預留63個報文的接收緩沖;只改第2點,緩沖區大小會受到rmem_max的限制,如果需要的緩沖區很大的話,必須兩點都改。

熱點內容
安卓網路編程怎麼用 發布:2025-01-16 03:04:45 瀏覽:899
湖南it伺服器怎麼樣 發布:2025-01-16 03:01:01 瀏覽:248
圖中兩種配置哪個好 發布:2025-01-16 02:59:28 瀏覽:582
如何解開密保密碼 發布:2025-01-16 02:57:44 瀏覽:23
中國銀行查詢密碼是什麼 發布:2025-01-16 02:33:20 瀏覽:794
堅果pro錄音文件夾 發布:2025-01-16 02:31:46 瀏覽:942
支付寶的登錄密碼忘記了如何改 發布:2025-01-16 02:30:30 瀏覽:224
解壓作業泥 發布:2025-01-16 02:28:02 瀏覽:810
我的世界rpg伺服器空島 發布:2025-01-16 02:26:49 瀏覽:93
ps腳本函數 發布:2025-01-16 02:15:28 瀏覽:484