1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
int sinSize;
int len;
int id;
info recvData;
fd_set fd;
timeval tv;
sinSize = sizeof(sin);
len = 0;
id = 0;
if (socketError == NO_ERROR)
{
while(!stopReading)
{
FD_ZERO(&fd);
FD_SET(socketServer, &fd);
tv.tv_sec = sec; // timeout sur la méthode accept
tv.tv_usec = usec;
if (select(0, &fd, NULL, NULL, &tv) > 0)
{
len = recvfrom(socketServer, (char*)&recvData, sizeof(recvData), 0, (SOCKADDR *)&sin, &sinSize);
if (len > 0)
{
dataLen[id] = len;
data[id].id = id;
data[id].time = recvData.time;
data[id].x = recvData.x;
data[id].y = recvData.y;
data[id].z = recvData.z;
id = id + 1;
if (id > MAX)
id = 0;
}
}
}
}
for (i=0; i<MAX; i++)
{
dataLen[i] = 0;
} |