Move(s[1], buf, Length(s));
Result := SOCKET_ERROR <> WinSock2.send(skt, buf, Length(s), 0); SocketTimeout.tv_sec := Timeout div 1000;
SocketTimeout.tv_usec := 1000 * (Timeout mod 1000);
SocketSet.fd_count := 1;
SocketSet.fd_array[0] := skt;
if (WinSock2.Select(0, @SocketSet, nil, nil, @SocketTimeout) > 0) then
begin
l := WinSock2.recv(skt, buf, 1024, MSG_PEEK); //默认是阻塞,也就是同步
SetString(Result, buf, l);
end我希望能同步读出server返回的数据,不行。而通过捕捉fd_onread(异步),是可以的,有知道的吗?我对socket模型不熟悉,谢谢。
Synapse库也不行,大部分是没问题的。有点伤脑筋,server在本机上。send(),第四个参数
Result := SOCKET_ERROR <> WinSock2.send(skt, buf, Length(s), 0); SocketTimeout.tv_sec := Timeout div 1000;
SocketTimeout.tv_usec := 1000 * (Timeout mod 1000);
SocketSet.fd_count := 1;
SocketSet.fd_array[0] := skt;
if (WinSock2.Select(0, @SocketSet, nil, nil, @SocketTimeout) > 0) then
begin
l := WinSock2.recv(skt, buf, 1024, MSG_PEEK); //默认是阻塞,也就是同步
SetString(Result, buf, l);
end我希望能同步读出server返回的数据,不行。而通过捕捉fd_onread(异步),是可以的,有知道的吗?我对socket模型不熟悉,谢谢。
Synapse库也不行,大部分是没问题的。有点伤脑筋,server在本机上。send(),第四个参数
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货