您现在的位置: 中国教师站 >> 教师关注 >> 电脑技术 >> 编程技术 >> Delphi >> 正文

Google
SGIP的delphi原码
作者:Siny 文章来源:中国教师站cn-teacher 点击数: 更新时间:2007-4-22 15:57:22
l(StrToInt(FV_Date2_S));
  stream3.Write(sHead,20);
  FillChar(sHead,20,0);
  if stream3.WaitForData(5000) then
  begin
    stream3.ReadBuffer(sHead,20);
  end;
  stream3.Free;
end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
  var
    RecvSize1,RecvSize2,DeSize:integer;
    commandI,MessageSize:LongWord;
begin
  RecvSize1:=0;
  RecvSize2:=0;
  FillChar(cHead,SizeOf(cHead),0);

  RecvSize1:=socket.ReceiveBuf(cHead,SizeOf(cHead));
  commandI:=ntohl(cHead.CommandId);
  MessageSize:=ntohl(cHead.MessageLength);
  if commandI=SGIP_BIND then
  begin
    memo1.Lines.Add('*********************接收到Bind请求*********************');
    FillChar(cBind,SizeOf(cBind),0);
    FillChar(cBind_Resp,SizeOf(cBind_Resp),0);
    RecvSize2:=Socket.ReceiveBuf(cBind,MessageSize-RecvSize1);
    if (RecvSize2+RecvSize1)<>MessageSize then
    begin
      memo1.Lines.Add('**********************bind数据接收错误*******************');
      exit;
    end;
    RecvSize2:=0;RecvSize1:=0;
    cHead.CommandId:=htonl(SGIP_BIND_RESP);
    cHead.MessageLength:=htonl(sizeof(cHead)+sizeof(cBind_Resp));
    cBind_Resp.Result:=0;
    RecvSize1:=Socket.SendBuf(cHead,SizeOf(cHead));
    RecvSize2:=Socket.SendBuf(cBind_Resp,SizeOf(cBind_Resp));
    if (RecvSize1+RecvSize2)<>ntohl(cHead.MessageLength) then
    begin
      memo1.Lines.Add('**********************响应bind请求错误***********************');
      exit;
    end;
  end
  else
  if commandI=SGIP_DELIVER then
  begin
    memo1.Lines.Add('********************接收到SGIP_DELIVER请求********************');
    DeSize:=SizeOf(cDeliver);
    FillChar(cDeliver,SizeOf(cDeliver),0);
    FillChar(cDeliver_Resp,SizeOf(cDeliver_Resp),0);
    RecvSize2:=Socket.ReceiveBuf(cDeliver,MessageSize-RecvSize1);
    if (RecvSize2+RecvSize1)<>MessageSize then
    begin
      memo1.Lines.Add('**********************SGIP_DELIVER数据接收错误*******************');
      exit;
    end;
    RecvSize2:=0;RecvSize1:=0;
    cHead.CommandId:=htonl(SGIP_DELIVER_RESP);
    cHead.MessageLength:=htonl(sizeof(cHead)+sizeof(cDeliver_Resp));
    cDeliver_Resp.Result:=0;
    RecvSize1:=Socket.SendBuf(cHead,SizeOf(cHead));
    RecvSize2:=Socket.SendBuf(cDeliver_Resp,SizeOf(cDeliver_Resp));
    if (RecvSize1+RecvSize2)<>ntohl(cHead.MessageLength) then
    begin
      memo1.Lines.Add('**********************响应SGIP_DELIVER请求错误***********************');
      exit;
    end;
  end
  else

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

相关专题:
 
 网友评论:(评论内容只代表网友观点,与本站立场无关!)
GOOGLE广告

阅读排行

相关文章

没有相关文章

| 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 |
中国教师站

中国教师站 版权所有 Copyright © 2006-2020 All Rights Reserved 站长:Sina & Siny
[备用域名:www.JXZYW.Com] 有事请留言有事请留言
【实力成就精品 诚信呵护品牌】

信息产业部备案
苏ICP备06018635号