zoukankan      html  css  js  c++  java
  • 使用idtcpserver和银行进行socket通讯

    要和银行用socket进行通讯,选用了idtcpserver,由于分组配套使用,自己写的client和server进行报文通讯完美。可是由银行调用就出问题了。表现为双方等待。接收不到报文。原因是这就是用writeln和readln方法。而银行方不加回车符的。因此参照网上先辈整理关键如下:
    procedure TForm5.TCPServerExecute(AContext: TIdContext);
    
    var
    
      len:integer;
    
      s:string;
    
      buffer:TBytes;
    
    begin
    
      len :=AContext.Connection.IOHandler.InputBuffer.Size;
    
      if len > 0 then
    
      begin
    
      AContext.Connection.IOHandler.ReadBytes(buffer, len, false);  //转化成字符串
    
      s := stringof(buffer);
    
      Self.Console.Lines.Add(s);
    
      end;
    
    // 发送用 
    
    buffer := bytesof(Edit3.Text);
    
    BzAContext.Connection.IOHandler.Write(buffer);
    
    end;

    注意:当连接server后,在跟踪ServerExecute时,是不断循环的,不要误认为有什么问题。至于为什么循环请参考相关文档。

    (张)
  • 相关阅读:
    015_stdc_C语言
    014_stdc_C语言
    013_stdc_C语言
    012C语言
    011_stdc_C语言
    010_stdc_C语言
    009_stdc_C语言
    008_stdc_C语言
    40.委托
    39.多线程
  • 原文地址:https://www.cnblogs.com/usegear/p/2566162.html
Copyright © 2011-2022 走看看