Показано с 1 по 2 из 2

Тема: Socket plugin

  1. #1
    Проверенный Аватар для georJik
    Регистрация
    07.07.2013
    Сообщений
    1,370
    Репутация: 427

    Звание: - очень-очень хороший человек

    Socket plugin

    Данный плагин позволяет вам использовать TCP\UDP сокеты. Каждый сокет принимает данные в отдельном потоке, это означает что сервер не будет зависать. После того как вы уничтожили сокет, поток будет остановлен.

    Плагин может применяться во многих полезных идеях, вот некоторые из них:
    Код:
    - IRC echo бот
    - Новая функция для RCON панели - чат на основе TCP-сокет сервера, схожий с GUIRCON
    - Загрузка данных сервера через UDP протокол
    - Работа с PHP-скриптами: логи/прием данных
    Функции:

    Код:
    native Socket:socket_create(pType:TCP); // UDP и TCP
    native socket_bind(Socket:id, ip[]);  // UDP и TCP
    native socket_connect(Socket:id, host[], port);  // UDP и TCP
    native socket_listen(Socket:id, port);  // UDP и TCP
    native socket_stop_listen(Socket:id);  // UDP и TCP
    native socket_destroy(Socket:id);  // UDP и TCP
    native socket_send(Socket:id, data[], len);  // UDP и TCP
    native is_socket_valid(Socket:id);  // UDP и TCP
    native socket_set_max_connections(Socket:id, max_remote_clients); // Только TCP
    native socket_close_remote_client(Socket:id, remote_clientid);  // Только TCP
    native socket_sendto_remote_client(Socket:id, remote_clientid, data[]);  // Только TCP
    native socket_remote_client_connected(Socket:id, remote_clientid);  // Только TCP
    native get_remote_client_ip(Socket:id, remote_clientid, ip[]);  // Только TCP
    Коллбэеки:
    Код:
    // Для клиента и сервера ( UDP протокол )
    forward onUDPReceiveData(Socket:id, data[], data_len, remote_client_ip[], remote_client_port);
    // Только для клиента ( TCP протокол )
    forward onSocketAnswer(Socket:id, data[], data_len); // вызывается только когда подключены ( socket_connect() ), сервер отсылает данные
    forward onSocketClose(Socket:id);
    // Только для сервера ( TCP протокол )
    forward onSocketReceiveData(Socket:id, remote_clientid, data[], data_len); // вызывается когда от клиента поступают данные
    forward onSocketRemoteConnect(Socket:id, remote_client[], remote_clientid); // вызывается когда клиент подключается к нашему сокет серверу
    forward onSocketRemoteDisconnect(Socket:id, remote_clientid); // вызывается когда клиент отключается от нашего сокет сервера
    Пример:

    PHP код:
    new Socket:sock socket_create(TCP);
    if(
    is_socket_valid(sock)) {
        
    socket_connect(sock"foco.us.irc.tl"6667); // Подключаемся
        
    socket_send(sock"NICK TestBot\r\n"); // Устанавливаем никнейм
        
    socket_send(sock"USER TestBot - - :TestBot\r\n"); // Устанавливаем юсеру никнейм бота
        
    socket_send(sock"MODE TestBot +B\r\n"); // Сообщаем серверу что это бот
        
    socket_send(sock"JOIN #test_channel\r\n"); // Присоединяем его к нашему каналу
    }

    // теперь этот коллбэк будет получать все входящие данные
    public onSocketAnswer(Socket:iddata[])
    {


    Ссылки:
    Windows: http://files.g-stylezzz.com/socket_p...01b/socket.dll
    Linux: http://files.g-stylezzz.com/socket_p...v01b/socket.so
    socket.inc: http://files.g-stylezzz.com/socket_plugin/socket.inc
    Примеры работ: TCP сервер, IRC-бот, Управление GUI, Внешняя Система Чата
    Исходник (0.1b): http://files.g-stylezzz.com/socket_p...t_v01b_src.rar
    Исходник (v0.2a): (SSL версии):
    Проект на GitHub'e: https://github.com/pBlueG/Socket
    Запакованные .zip .tar.gz: https://github.com/pBlueG/Socket/releases/tag/v0.2a



    Автор: BlueG
    Автор перевода: georJik

  2. #2
    Люблю Окса :3 Аватар для Folleah
    Регистрация
    26.09.2012
    Сообщений
    2,045
    Репутация: 184

    Звание: - весьма и весьма положительная личность

    Re: Socket plugin

    Зашибись, хотел как-то сделать статью об этом плагине, но лень было

Похожие темы

  1. [Plugin] MTA Regex Module
    от SeNT_Styles в разделе Ресурсы / Разработки пользователей
    Ответов: 14
    Последнее сообщение: 09.09.2014, 09:24
  2. FCNPC Plugin
    от DieSeL в разделе Другие темы по Pawn
    Ответов: 9
    Последнее сообщение: 25.10.2013, 16:37
  3. MySQL Plugin
    от [SP]Kyle в разделе Вопросы по скриптингу
    Ответов: 6
    Последнее сообщение: 08.10.2013, 15:27
  4. Документация по Audio Plugin v.0.5
    от SDraw в разделе Pawn WIKI
    Ответов: 123
    Последнее сообщение: 12.09.2013, 16:22

Ваши права

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