delphi我不是很熟悉,刚接触。现在遇到一个问题像请教大家,应该如何处理。
我有一个线程,专门用来处理winsocket的接收字节流的,但是到
recv(socketClient, rcBody, SizeOf(rcBody), 0);
这一句的时候就不动了(这时候没有任何数据流,但是10秒以后会有,也就是链路检测包),10秒以后又能接收到,应该如何处理。程序代码大致如下:
Procedure TCheckThread.Execute;
Begin
    Repeat
        Synchronize(Receiver);
    Until Terminated;
End;Procedure TCheckThread.Receiver;
    Procedure PrintActive;
    Begin
        Timer1.Enabled := True;
        With llv.Items.Insert(0) Do
        Begin
            Caption := IntToStr(llv.Items.Count);
            SubItems.Add(DateTimeToStr(Now));
            SubItems.Add('链路测试');
            SubItems.Add('接收到链路检测的Resp.');
        End;
    End;
Var
    rcBody: THEAD;
Begin
    recv(socketClient, rcBody, SizeOf(rcBody), 0);
    Case htonl(rcBody.command) Of
        FWPP_ACTIVE_RESP: PrintActive;
    End;
End;