A. 怎樣設置路由器的超時時間
路由器的背面有個IP地址 在IE中打那個地址就會進入到路由器里了 然後你再那裡改超時時間就行了
B. 如何設置connect超時時間
1.首先將標志位設為Non-blocking模式,准備在非阻塞模式下調用connect函數
2.調用connect,正常情況下,因為TCP三次握手需要一些時間;而非阻塞調用只要不能立即完成就會返回錯誤,所以這里會返回EINPROGRESS,表示在建立連接但還沒有完成。
3.在讀套介面描述符集(fd_set rset)和寫套介面描述符集(fd_set
wset)中將當前套介面置位(用FD_ZERO()、FD_SET()宏),並設置好超時時間(struct
timeval *timeout)
4.調用select( socket, &rset, &wset, NULL, timeout )
返回0表示connect超時
如果你設置的超時時間大於75秒就沒有必要這樣做了,因為內核中對connect有超時限制就是75秒。
網路編程中socket的分量我想大家都很清楚了,socket也就是套介面,在套介面編程中,提到超時的概念,我們一下子就能想到3個:發送超時,接收超時,以及select超時(註:
select
函數並不是只用於套介面的,但是套介面編程中用的比較多),在connect到目標主機的時候,這個超時是不由我們來設置的。不過正常情況下這個超時都很
長,並且connect又是一個阻塞方法,一個主機不能連接,等著connect返回還能忍受,你的程序要是要試圖連接多個主機,恐怕遇到多個不能連接的
主機的時候,會塞得你受不了的。我也廢話少說,先說說我的方法,如果你覺得你已掌握這種方法,你就不用再看下去了,如果你還不了解,我願意與你分享。本文
是已在Linux下的程序為例子,不過拿到Windows中方法也是一樣,無非是換幾個函數名字罷了。
Linux中要給connect設置超時,應該是有兩種方法的。一種是該系統的一些參數,這個方法我不講,因為我講不清楚:P,它也不是編程實現的。另外一種方法就是變相的實現connect的超時,我要講的就是這個方法,原理上是這樣的:
1.建立socket
2.將該socket設置為非阻塞模式
3.調用connect()
4.使用select()檢查該socket描述符是否可寫(注意,是可寫)
5.根據select()返回的結果判斷connect()結果
6.將socket設置為阻塞模式(如果你的程序不需要用阻塞模式的,這步就省了,不過一般情況下都是用阻塞模式的,這樣也容易管理)
如果你對網路編程很熟悉的話,其實我一說出這個過程你就知道怎麼寫你的程序了,下面給出我寫的一段程序,僅供參考。
/******************************
* Time out for connect()
* Write by Kerl W
******************************/
#include
#include
#define TIME_OUT_TIME 20 //connect超時時間20秒
int main(int argc , char **argv)
{
………………
int sockfd = socket(AF_INET, SOCK_STREAM, 0);
if(sockfd < 0) exit(1);
struct sockaddr_in serv_addr;
………//以伺服器地址填充結構serv_addr
int error=-1, len;
len = sizeof(int);
timeval tm;
fd_set set;
unsigned long ul = 1;
ioctl(sockfd, FIONBIO, &ul); //設置為非阻塞模式
bool ret = false;
if( connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) ==
-1)
{
tm.tv_set = TIME_OUT_TIME;
tm.tv_uset = 0;
FD_ZERO(&set);
FD_SET(sockfd, &set);
if( select(sockfd+1, NULL, &set, NULL, &tm) > 0)
{
getsockopt(sockfd, SOL_SOCKET, SO_ERROR, &error, (socklen_t *)&len);
if(error == 0) ret = true;
else ret = false;
} else ret = false;
}
else ret = true;
ul = 0;
ioctl(sockfd, FIONBIO, &ul); //設置為阻塞模式
if(!ret)
{
close( sockfd );
fprintf(stderr , "Cannot Connect the server!n");
return;
}
fprintf( stderr , "Connected!n");
//下面還可以進行發包收包操作
……………
}
以上代碼片段,僅供參考,也是為初學者提供一些提示,主要用到的幾個函數,select,
ioctl,
getsockopt都可以找到相關資料,具體用法我這里就不贅述了,你只需要在linux中輕輕的敲一個man
<函數名>就能夠看到它的用法。
此外我需要說明的幾點是,雖然我們用ioctl把套介面設置為非阻塞模式,不過select本身是阻塞的,阻塞的時間就是其超時的時間由調用select
的
時候的最後一個參數timeval類型的變數指針指向的timeval結構變數來決定的,timeval結構由一個表示秒數的和一個表示微秒數(long
類型)的成員組成,一般我們設置了秒數就行了,把微妙數設為0(註:1秒等於100萬微秒)。而select函數另一個值得一提的參數就是上面我們用到的
fd_set類型的變數指針。調用之前,這個變數裡面存了要用select來檢查的描述符,調用之後,針對上面的程序這裡面是可寫的描述符,我們可以用宏
FD_ISSET來檢查某個描述符是否在其中。由於我這里只有一個套介面描述符,我就沒有使用FD_ISSET宏來檢查調用select之後這個
sockfd是否在set裡面,其實是需要加上這個判斷的。不過我用了getsockopt來檢查,這樣才可以判斷出這個套介面是否是真的連接上了,因為
我們只是變相的用select來檢查它是否連接上了,實際上select檢查的是它是否可寫,而對於可寫,是針對以下三種條件任一條件滿足時都表示可寫
的:
1)套介面發送緩沖區中的可用控制項位元組數大於等於套介面發送緩沖區低潮限度的當前值,且或者i)套介面已連接,或者ii)套介面不要求連接(UDP方式的)
2)連接的寫這一半關閉。
3)有一個套介面錯誤待處理。
這樣,我們就需要用getsockopt函數來獲取套介面目前的一些信息來判斷是否真的是連接上了,沒有連接上的時候還能給出發生了什麼錯誤,當然我程序中並沒有標出那麼多狀態,只是簡單的表示可連接/不可連接。
下面我來談談對這個程序測試的結果。我針對3種情形做了測試:
1. 目標機器網路正常的情況
可以連接到目標主機,並能成功以阻塞方式進行發包收包作業。
2. 目標機器網路斷開的情況
在等待設置的超時時間(上面的程序中為20秒)後,顯示目標主機不能連接。
3. 程序運行前斷開目標機器網路,超時時間內,恢復目標機器的網路
在恢復目標主機網路連接之前,程序一隻等待,恢復目標主機後,程序顯示連接目標主機成功,並能成功以阻塞方式進行發包收包作業。
以
上各種情況的測試結果表明,這種設置connect超時的方法是完全可行的。我自己是把這種設置了超時的connect封裝到了自己的類庫,用在一套監控
系統中,到目前為止,運行還算正常。這種編程實現的connect超時比起修改系統參數的那種方法的有點就在於它只用於你的程序之中而不影響系統。
connect非阻塞套介面時候,一般使用在以下幾種情況:
1.三路握手需要時間,這個要視具體的網路情況而定。當然也有可能失敗。在三路握手的時候我們並不需要在原地等待三路握手的完成,可以用這些時間來
完成其它事情,然後當這些事情完成後,再去檢測連接是否建立(也就是三路握手是否完成)。
2.可以用這種技術來同時建立多個連接。(WEB瀏覽器中很常用)。
3.connect超時需要很長時間才會通知,如果我們認為超過0.1秒以後就算超時(不管它是不是真的超時),這是就可以使用非阻塞式I/O結合
select來完成。
當採用非阻塞式I/O來使用connect時候,要判斷一個連接是否建立則比較復雜,需要按照以下幾個步驟來完成
1.即使是使用非阻塞式的connect操作,connect依然可能正確返回,也就是說非阻塞的connect
也有可能三路連接完成後返回,這種情況一般發生在伺服器和主機在同一個機器上,所以第一步要判斷connect是否正確返回,如果正確返回則請做正確返回
的處理,否則進入步驟2
2.設置fd_set,(如果沒看明白,請先看select函數介紹),讓select函數同時監聽套接字的讀寫2個屬性,如果既可讀也可寫則進入
步驟3,如果可寫但不可讀進入步驟4.
3.如果到達這步,我們需要調用getsockopt進一步判斷。這里涉及到一個移植問題,getsockopt如果發生錯誤,
源自Berkeley的實現會返回0,如果是solaris,則會返回-1。建議是2個都處理(如果看不明白請先看getsockopt函數,套介面選
項)。根據getsockopt通過參數返回的erron的值,如果值為0則表示鏈接建立完成,如果不為0, 則說明鏈接建立沒有完成。
4.如果能到達這里,則說明連接建立完成。
最後,即使最後你得出鏈接沒有建立完成,也只是說:可能三路握手的過程還是沒有完成。
C. 無線認證閑置超時時間及流量建議設置多少
看具體情況吧。
如果在連接網路時,估計設置項是閑置超時自動斷開。如果是,意思就是路由器發現在一段時間內沒有上網請求,路由器會斷開聯網。這種方式一般給按時間收費的網路選用。字面意思就是,沒有網路請求達到設定時間。如果是無限上網的用戶,建議使用永不斷網的自動連接的方式,一定要設置超時連接的話,選擇最長時間。如果是其他設置時候,請根據設置要求設置。
D. 網路時間怎麼設置
首先,點擊桌面上右下的時間,彈出框點擊更改時間和日期。接著,在彈出框中選擇「Internet時間」。,選擇「Internet時間」選項,點擊「更改設置」,點擊立即更新。
然後會提示超時出錯,這個時候去看一下服務裡面的window Time 服務時候開啟,我的電腦手錶郵件選擇管理。接著,找到「window Time」發現是關閉開啟,調成自動啟動的服務這樣就不用每次去修改時間了。
網路時間最後就會發現時間和日期都同步了
E. AFNetworking怎麼設置網路超時的時間
POST請求
+ (AFHTTPRequestOperation *)GETMethod:(NSString *)URLString
parameters:(id)parameters
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure {
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
// 設置超時時間
[manager.requestSerializer willChangeValueForKey:@"timeoutInterval"];
manager.requestSerializer.timeoutInterval = 10.f;
[manager.requestSerializer didChangeValueForKey:@"timeoutInterval"];
AFHTTPRequestOperation *httpOperation = [manager GET:URLString
parameters:parameters
success:^(AFHTTPRequestOperation *operation, id responseObject) {
if (success) {
success(operation, responseObject);
}
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
if (failure) {
failure(operation, error);
}
}];
return httpOperation;
}
GET請求
+ (AFHTTPRequestOperation *)POSTMethod:(NSString *)URLString
parameters:(id)parameters
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure {
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/html"];
// 設置超時時間
[manager.requestSerializer willChangeValueForKey:@"timeoutInterval"];
manager.requestSerializer.timeoutInterval = 10.f;
[manager.requestSerializer didChangeValueForKey:@"timeoutInterval"];
AFHTTPRequestOperation *httpOperation = [manager POST:URLString
parameters:parameters
success:^(AFHTTPRequestOperation *operation, id responseObject) {
if (success) {
success(operation, responseObject);
}
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
if (failure) {
failure(operation, error);
}
}];
return httpOperation;
}
其中,設置這么一句話即可:
回答不容易,希望能幫到您,滿意請幫忙採納一下,謝謝 !
F. 如何設置連接超時時間
連接數的話可以修改spfile文件來約束
查看當前的連接數:
select count(*) from v$process;
–資料庫允許的最大連接數:
select value from v$parameter where name = 『processes』;
–修改最大連接數:alter system set processes = 500 scope = spfile;
–重啟資料庫:shutdown immediate;
startup;
–查看當前有哪些用戶正在使用數據
SELECT osuser, a.username,cpu_time/executions/1000000||』s』, sql_fulltext,machine
from v$session a, v$sqlarea b where a.sql_address =b.address order by cpu_time/executions desc;
連接超時時間的話有很多辦法,最常用的是
在你的oracle伺服器的 $ORACLE_HOME/network/admin 中的 sqlnet.ora中設置參數SQLNET.EXPIRE_TIME= n n為一個指定的分鍾數
當客戶端中斷,在 n 分鍾內就可以自動斷開連接。
希望能幫到您!
G. AFNetworking怎麼設置網路超時的時間
POST請求
+ (AFHTTPRequestOperation *)GETMethod:(NSString *)URLString
parameters:(id)parameters
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure {
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
// 設置超時時間
[manager.requestSerializer willChangeValueForKey:@"timeoutInterval"];
manager.requestSerializer.timeoutInterval = 10.f;
[manager.requestSerializer didChangeValueForKey:@"timeoutInterval"];
AFHTTPRequestOperation *httpOperation = [manager GET:URLString
parameters:parameters
success:^(AFHTTPRequestOperation *operation, id responseObject) {
if (success) {
success(operation, responseObject);
}
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
if (failure) {
failure(operation, error);
}
}];
return httpOperation;
}
GET請求
+ (AFHTTPRequestOperation *)POSTMethod:(NSString *)URLString
parameters:(id)parameters
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure {
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/html"];
// 設置超時時間
[manager.requestSerializer willChangeValueForKey:@"timeoutInterval"];
manager.requestSerializer.timeoutInterval = 10.f;
[manager.requestSerializer didChangeValueForKey:@"timeoutInterval"];
AFHTTPRequestOperation *httpOperation = [manager POST:URLString
parameters:parameters
success:^(AFHTTPRequestOperation *operation, id responseObject) {
if (success) {
success(operation, responseObject);
}
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
if (failure) {
failure(operation, error);
}
}];
return httpOperation;
}
其中,設置這么一句話即可:
H. 寬頻如何設置上網限制時間
推薦你用易通電腦鎖7軟體,完全適合你的要求.它可以控制時間段和累計時間來控制上網時間和電腦使用時間,非常方便.
你可以直接在網路里搜索「易通電腦鎖7軟體」下載
也可以到天空軟體或華軍軟體站下載
I. 網頁超時時間的設置,有追加!!!
打開注冊表編輯器,單擊窗口左側的樹形列表,依次展開HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon子鍵,在其鍵值窗口中新建一個「DWORD值」類型的鍵值項,將其命名為「SlowLinkTimeOut」,設置鍵值為「3000」(單位是毫秒),重新啟動電腦後,設置生效。 希望對你有幫助。
J. AFNetworking怎麼設置網路超時的時間
有時,網路速度非常慢,為了節省資源,用戶可以自己設置需要的網路超時時間。 打開注冊表編輯器,單擊窗口左側的樹形列表,依次HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon子鍵,在其鍵值窗口中新建一個「DWORD值」類型的鍵值項,將其命名為「SlowLinkTimeOut」,設置鍵值為「3000」(單位是毫秒),重新啟動電腦後,設置生效。