Ср авг 20, 2014 3:51 pm Ср авг 20, 2014 3:51 pm
const CRLF = '#13#10';
MagicString = '#23#6';
cs_hello = '0001';
cs_login = '0003';
SendingFlags = '00';
IdTCPClient1.Connect;
IdTCPClient1.Socket.WriteLn('mc5.0' + CRLF + '{"Secured":""}');
Всё хорошо получаем ответ:
800000{"ServPass":false,"ServName":"ILYA","UpdatePacketVer":"","UTC":4,"RelDate":"15.07.2014","ProtocolVer":"2.5","PortNode":80,"PortHTTP":8083,"PortFTP":20000,"ServerVer":"5.6.0","Registered":"-","HelloMsg":"Welcome to -=MyChat=- Server\r\nCopyright (c) 2004-2013 by Alexey Pikurov \/ Network Software Solutions\r\nWWW: https:\/\/nsoft-s.com\r\nE-Mail: [email protected]\r\nSupport https:\/\/nsoft-s.com\/forum\r\nBlog: http:\/\/blog.nsoft-s.com","UpdatePacketSize":1,"YourIP":"192.168.1.5","HWID":"284979801_0_6-5-5-516875208","Free":false,"ForceUpdate":true,"CurrentDT":"20.08.2014.16.59.42.154"}
Идём дальше отправляем ему в ответ:
function my_hello:WideString;
var
JSONobj: ISuperObject;
JsonArray: TSuperArray;
begin
JSONobj := SO();
JSONobj.S['ProtocolVer'] := '2.5';
JSONobj.S['Client'] := 'win32';
JSONobj.B['Packed'] := false;
JSONobj.S['ServPass'] := '';
JSONobj.S['MAC'] := '00-17-31-57-6C-61';
JSONobj.S['HardwareID'] := '45678906546';
JSONobj.S['NetName'] := 'COMPOFFICE';
JSONobj.S['Ver'] := '5.6.0';
JSONobj.S['OS'] := 'Windows 7';
JSONobj.S['Secured'] := '';
JSONobj.I['UTC'] := 4;
JSONobj.O['Interfaces'] := SA([]);
JSONobj.A['Interfaces'].S[0]:= '192.168.1.5';
result := JSONobj.AsJSon;
JSONobj.Clear(true);
JSONobj := nil;
end;
IdTCPClient1.Socket.WriteLn(MagicString + cs_hello + SendingFlags + my_hello + CRLF);
Memo1.Lines.Add(IdTCPClient1.Socket.ReadLn);
И тут молчание.
Полный код:
const CRLF = '#13#10';
MagicString = '#23#6';
cs_hello = '0001';
cs_login = '0003';
SendingFlags = '00';
function my_hello:WideString;
var
JSONobj: ISuperObject;
JsonArray: TSuperArray;
begin
JSONobj := SO();
JSONobj.S['ProtocolVer'] := '2.5';
JSONobj.S['Client'] := 'win32';
JSONobj.B['Packed'] := false;
JSONobj.S['ServPass'] := '';
JSONobj.S['MAC'] := '00-17-31-57-6C-61';
JSONobj.S['HardwareID'] := '45678906546';
JSONobj.S['NetName'] := 'COMPOFFICE';
JSONobj.S['Ver'] := '5.6.0';
JSONobj.S['OS'] := 'Windows 7';
JSONobj.S['Secured'] := '';
JSONobj.I['UTC'] := 4;
JSONobj.O['Interfaces'] := SA([]);
JSONobj.A['Interfaces'].S[0]:= '192.168.1.5';
result := JSONobj.AsJSon;
JSONobj.Clear(true);
JSONobj := nil;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
IdTCPClient1.Connect;
IdTCPClient1.Socket.WriteLn('mc5.0' + CRLF + '{"Secured":""}');
IdTCPClient1.Socket.WriteLn(MagicString + cs_hello + SendingFlags + my_hello + CRLF);
Memo1.Lines.Add(IdTCPClient1.Socket.ReadLn);
end;
Что не так?