我正在使用该setsockopt()函数在函数上设置超时recvfrom().由于我使用的协议,我必须首先超时2秒,然后4,6,直到最大.但是当我使用该功能时,它似乎有0.01秒的超时,因为它无需等待即可发送8个数据包.
//more variables and code here
struct timeval timeout = {2,0};
while(1){
setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, (char*)&timeout, sizeof(struct timeval));
temp2 = recvfrom(sock, &buff, sizeof(buff), 0, (struct sockaddr *)&addr_server, sizeof(addr_server));
if(temp2 < 0){ /* Timeout excedit (exceeded)*/
temp = sendto(sock, (struct udp_PDU*)®_pdu, sizeof(reg_pdu), 0, (struct sockaddr *)&addr_server, sizeof(addr_server));
if(temp == -1){
printf("Error sendTo \n");
exit(-1);
}
packet_counter++;
debug("Enviat paquet REGISTER_REQ");
if(packet_counter == 8) break;
if((interval * max) > t ) timeout.tv_sec+=interval;
}else{ /* s'han rebut dades (they have …Run Code Online (Sandbox Code Playgroud) 我有一个角度形式,我想建议用户根据他正在写的内容在输入中输入什么。
我显然可以使用指令 onChange 并对服务进行 api 调用,该服务在每次更改后提出建议。但我认为这不是一个好的实现,因为我会做与用户写的字母一样多的调用(以及可能的拼写错误)。所以这个想法是让这个 onChange 函数只在对字段进行 X 更改后才进行 api 调用。我怎样才能做到这一点?如何检查该字段是否已更改到足以进行另一个 api 调用以获取新建议?