关于VB WINSOCK通讯,请高手指导一下,若能给出原代码可以支付一点辛苦费,谢谢!
通讯协议下载地址:www.io89.com/a5.pdf
要求:能正确接收指纹数据即可
我的QQ:6334164, MSN:[email protected], 手机:13138890525type
  TFPUSTRU = packed record//tcp/ip回送结构
   uno: cardinal;//用户号码 4 byte
   uname: Array[1..10] of char; //姓名  10 byte
   udepname: Array[1..10] of char;// 部门  10 byte
  end;  TFPIdentify = packed record//指纹验证识别
    MachineNumber: Byte;
    PIN: Cardinal;
    ImageSize: Cardinal;
  end;  TFPResult= packed record//pc回送结果
    PIN: Cardinal;
    uname: Array[1..20] of char; //姓名  20 byte
    udepname: Array[1..20] of char;// 部门  20 byte
  end;
//UDP收到“REQ”后立即回发“OK”,VB中使用WINSOCK控件,能收到REQ,但发送OK没反应。UDP PORT=4371
procedure TFrmMain.UDPServerUDPRead(Sender: TObject; AData: TStream;
  ABinding: TIdSocketHandle);
var
  DataStringStream: TStringStream;
  s: String;
begin
  DataStringStream := TStringStream.Create('');
  try
    DataStringStream.CopyFrom(AData, AData.Size);
    if datastringStream.DataString = 'REQ' then
    begin
      s := 'OK';
      ABinding.SendTo(ABinding.PeerIP, StrToInt(g_udpport), s[1], Length(s)); //关键是在这里不知道VB怎样发送,我用VB的WINSOCK控件发,但没有反应。
     end;
  finally
    DataStringStream.Free;
  end;
end;procedure TFrmMain.IdTCPServerExecute(AThread: TIdPeerThread);
var
  //省去了变量声明
begin
   try
     try
      with AThread do
      begin
         //开始接收数据
        TempStream := TMemoryStream.Create;
        connection.ReadStream(tempstream, 4);
        tempstream.Position := 0;
        tempstream.ReadBuffer(size, 4);
        tempstream.Free;
        //待接收数据大小
        size1 := size;
        if (Size > 0) then
        begin
          TempStream := TMemoryStream.Create;
          connection.ReadStream(tempstream, 2);
          tempstream.Position := 0;
          tempstream.ReadBuffer(rvcommand, 2);
          Tempstream.Free;
          //显示命令请求
          rvcommand1 := rvcommand;
          if rvcommand < 7 then
            postmessage(FrmMain.handle, WM_dispstart, 2,0);
          case rvcommand of
            1: begin  //收到验证命令
                 TempStream := TMemoryStream.Create;
                 try
                   connection.ReadStream(tempstream, sizeof(fpvfstru));
                   tempstream.Position := 0;
                   tempstream.ReadBuffer(fpvfstru, sizeof(fpvfstru)); //关键这里不知道在VB怎么写,将接收到二进制数据转换为结构
                 finally
                   Tempstream.Free;
                 end;