共有评论12条
当前显示最后6条评论
|
yao_ming |
2009/6/9 3:58:25 |
算你这个包装得好一点... |
softbug |
2009/7/13 23:40:39 |
IOCPServer1DataReceive(SocketHandle: Cardinal)
怎么用? |
snoopy_teng |
2009/7/31 20:23:32 |
procedure TServerForm.IOCPServerDataReceive(SocketHandle: Cardinal); var AConnection: TConnection; Node: TNode; PS: PTSession; pOutData: array of char; RecvLen: Integer; HeadLen, PacketLen: integer; PHead: PTHead; PClient: PTClient; PMsgtoSender: PTMsgtoSender; begin PS := GetSession(SocketHandle); if PS = nil then exit; AConnection := TConnection(PS^.Connection); if AConnection = nil then Exit; HeadLen := SIZE(P_HEAD); TStretchBuffer(PS^.RevBuffer).Lock; try RecvLen := AConnection.RecvIOData.Overlapped.InternalHigh; TStretchBuffer(Ps^.RevBuffer).WriteBuffer(@AConnection.RecvIOData.Buffer[0], RecvLen); while TStretchBuffer(PS^.RevBuffer).BufferSize >= HeadLen do |
cyf_fly |
2009/8/7 23:48:29 |
能否发个demo看看 |
sisha |
2009/11/17 17:13:07 |
procedure TIOCPServer.DoDataReceive(Socket: TSocket); begin Lock; try if Assigned(OnDataReceive) then OnDataReceive(Socket); finally UnLock; end; end;
这个Lock 问题很大。。。 |
sisha |
2009/11/17 17:15:26 |
procedure TCustomProcessor.Execute; 里面 只有
if errcode = ERROR_NETNAME_DELETED then FServer.DoClientDisConnect(HandleData^.Socket);
not GetQueuedCompletionStatus 里面只有 if errcode = ERROR_NETNAME_DELETED then?? 才需要 FServer.DoClientDisConnect(HandleData^.Socket); ? |
我要发表评论 |
查看全部评论 |