Конференция "Сети" » TIdTCPServer на Андроид
 
  • Darvin (21.01.15 16:32) [0]
    Здравствуйте!
    Я новичок в работе с сетью. Сделал простейшую пару клиент - сервер.
    Клиент передает сообщение:

     with FOwner.IdTCPClient do
       try
         Connect;
         try
           IOHandler.Writeln('Привет, сервер!');
           St := IOHandler.ReadLn;
           ShowMessage(St);
         finally
           Disconnect;
         end;
       except
         on E: EIdException do
         begin
           FOwner.lblResult.Caption := 'Communication Exception: ' + E.Message;
         end;
       end;



    Сервер его принимает:

    procedure TfmClientMain.IdTCPServerExecute(AContext: TIdContext);
    var
     St : String;
    begin
     St := AContext.Connection.IOHandler.Readln;
     mmInput.Lines.Add(St);
     AContext.Connection.IOHandler.WriteLn('Привет, клиент!');
    end;




    Все прекрасно работает на D2009 под Windows

    Делаю аналог для планшета на Андроид на Delphi XE5.
    Сервер при попытке активации

    IdTCPServer.Active := true;



    Генерирует ошибку:

    EIdSocketError #98 address already in use

    С чем это может быть связано? куда копать?
  • junglecat © (22.01.15 09:45) [1]
  • Darvin (22.01.15 16:53) [2]
    Спасибо.
    Попытка активации прошла успешно. Но.
    При завершении приложения возникает сбой:
    Exception class Segmentation fault (11)

    Код активации:
     IdTCPServer.Bindings.Clear;
     IdTCPServer.Bindings.Add.SetBinding('127.0.0.1', 8081);
     try
       IdTCPServer.Active := true;
     except
       ShowMessage('Error');
     end;

  • junglecat © (22.01.15 17:05) [3]
    > Segmentation fault (11)

    такое бывает при попытке доступа в невалидный участок памяти. Например, прочитать/записать обнуленный указатель
  • junglecat © (22.01.15 17:09) [4]
    либо попытка записи в память, помеченную "только для чтения"
 
Конференция "Сети" » TIdTCPServer на Андроид
Есть новые Нет новых   [134427   +34][b:0][p:0.001]