linux和windows下用setsockopt設置send(), recv() 超時的參數的一點區別
Posted on 2010-09-14 16:38 楊書童 閱讀(3926) 評論(0) 編輯 收藏 引用 所屬分類: 基礎知識-經驗之談linux:
1
struct timeval timeout=
{3,0};//3s
2
3
int ret=setsockopt(sock_fd,SOL_SOCKET,SO_SNDTIMEO,&timeout,sizeof(timeout));
4
5
int ret=setsockopt(sock_fd,SOL_SOCKET,SO_RCVTIMEO,&timeout,sizeof(timeout));
6
7
如果ret==0 則為成功,-1為失敗,這時可以查看errno來判斷失敗原因
8
9
int recvd=recv(sock_fd,buf,1024,0);
10
11
if(recvd==-1&&errno==EAGAIN)
12
13
{
14
15
printf("timeout\n");
16
17
}
18
19



2

3

4

5

6

7

8

9

10

11

12

13



14

15

16

17

18

19

windows:





