特送上一题,给大家拜年了。祝大家新年快乐!万事如意!
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;