天天看點

為socket的recv/send設定逾時

 發現每次發送檔案之後,要等很久插入到資料庫中。哪裡有問題?今天跟蹤了一下,發現是發送檔案之後的傳回很慢。一想,應該是使用的預設逾時(30秒?)。設定逾時後,很快就傳回了:

struct timeval timeout={1,0};
    setsockopt(socket, SOL_SOCKET, SO_SNDTIMEO, (const char*)&timeout, sizeof(timeout));
    setsockopt(socket, SOL_SOCKET, SO_RCVTIMEO, (const char*)&timeout, sizeof(timeout));