AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.06.2007, 07:42   #1  
Armoshka is offline
Armoshka
Участник
 
6 / 10 (1) +
Регистрация: 31.03.2007
Адрес: Астана
Соединение с TCP сервером
Здравствуйте!

Не могбы ли бы вы подсказать, как можно сделать soket connection с ТСР сервером, мне сказали что это не сложно и в туториале есть, но я не нашел в туториале.

Вообще задача стоит соединиться с ТСР сервером отправить запрос потоком в XML формате и получить ответ потоком XML формате.
Старый 07.06.2007, 15:44   #2  
Armoshka is offline
Armoshka
Участник
 
6 / 10 (1) +
Регистрация: 31.03.2007
Адрес: Астана
Нашел в каком направлении искать.
В Axapte 4 отсуствует tutorial_TicTacToy (крестики нолики)

X++:
static void CreateConnection(Args _args)
{
    #Socks
    Dll               dll;
    DllFunction       dllConnect;
    DllFunction       dllSocket;
    DllFunction       dllPort;
    DllFunction       dllHost;
    anytype           socketValue;
    anytype           retVal;
    int               host;
    anytype           port;
    InteropPermission perm;
    int               intPort,socket ;
    ;
    perm = new InteropPermission(InteropKind::DllInterop);
    perm.assert();

    dll = new Dll("Ws2_32.dll");
       CodeAccessPermission::revertAssert();
    if (dll != null)
    {
        perm = new InteropPermission(InteropKind::DllInterop);
    // Grants permission to execute the DLLFunction.new method.
    // DLLFunction.new runs under code access security.
        perm.assert();

        dllConnect = new DllFunction(dll, "connect");
        dllSocket = new DllFunction(dll,"socket");
        dllPort = new DllFunction(dll,"htons");
        dllHost = new DllFunction(dll,"inet_addr");

        dllSocket.arg(ExtTypes::DWord,ExtTypes::DWord,ExtTypes::DWord);
        dllSocket.returns(ExtTypes::DWord);

        socket = dllSocket.call(#AF_INET,#SOCK_STREAM,#IPPROTO_IP);

        if (dllHost!=null){
           dllHost.arg(ExtTypes::String);
           dllHost.returns(ExtTypes::DWord);
           host = dllHost.call("127.0.0.1");
        }

        if (dllPort!=null){

            dllPort.arg(ExtTypes::Pointer);
            dllPort.returns(ExtTypes::String);
            port = dllPort.call(intPort);
        }

        if (dllConnect != null)
        {
            dllConnect.returns(ExtTypes::DWord);

            retVal = dllConnect.call();
        }
        // Closes the code access permission scope.
       CodeAccessPermission::revertAssert();
    }
Сокет запускается, но проблема в том что для соединения нужно передать Хост и порт. Так это делается С++
X++:
 // The sockaddr_in structure specifies the address family,
  // IP address, and port of the server to be connected to.
  sockaddr_in clientService; 
  clientService.sin_family = AF_INET;
  clientService.sin_addr.s_addr = inet_addr( "127.0.0.1" );
  clientService.sin_port = htons( 27015 );
Вот этот не могу переделать под Axapta
Теги
ax4.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Двойное соединение из COM Connector Zorik DAX: Программирование 3 04.02.2007 16:28
Как программно разорвать или восстановить соединение через AxaptaCOMConnector? sschainik DAX: Программирование 3 24.11.2006 08:49
Соединение с двумя таблицами в DS формы Zepp DAX: Программирование 3 21.04.2006 15:16
AOS обрубет соединение mau DAX: Администрирование 16 22.12.2005 16:49
Соединение м/у АОС и базой RFC DAX: Администрирование 4 30.07.2004 10:00

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 01:56.