Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 5 из 5

Тема: Socket

  1. #1
    Аватар для Osetin
    •Администратор•

    Статус
    Оффлайн
    Регистрация
    26.03.2013
    Адрес
    ♔Osetia, Vladikavkaz♔
    Сообщений
    3,432
    Репутация:
    1093 ±

    Socket

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

    Плагин может применяться во многих полезных идеях, вот некоторые из них:

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

    Функции:
    PHP код:
    native Socket:socket_create(pType:TCP); // UDP и TCP
    native socket_bind(Socket:idip[]);  // UDP и TCP
    native socket_connect(Socket:idhost[], port);  // UDP и TCP
    native socket_listen(Socket:idport);  // UDP и TCP
    native socket_stop_listen(Socket:id);  // UDP и TCP
    native socket_destroy(Socket:id);  // UDP и TCP
    native socket_send(Socket:iddata[], len);  // UDP и TCP
    native is_socket_valid(Socket:id);  // UDP и TCP
    native socket_set_max_connections(Socket:idmax_remote_clients); // Только TCP
    native socket_close_remote_client(Socket:idremote_clientid);  // Только TCP
    native socket_sendto_remote_client(Socket:idremote_clientiddata[]);  // Только TCP
    native socket_remote_client_connected(Socket:idremote_clientid);  // Только TCP
    native get_remote_client_ip(Socket:idremote_clientidip[]);  // Только TCP 
    Коллбэки:
    PHP код:
    // Для клиента и сервера ( UDP протокол )
    forward onUDPReceiveData(Socket:iddata[], data_lenremote_client_ip[], remote_client_port);
    // Только для клиента ( TCP протокол )
    forward onSocketAnswer(Socket:iddata[], data_len); // вызывается только когда подключены ( socket_connect() ), сервер отсылает данные
    forward onSocketClose(Socket:id);
    // Только для сервера ( TCP протокол )
    forward onSocketReceiveData(Socket:idremote_clientiddata[], data_len); // вызывается когда от клиента поступают данные
    forward onSocketRemoteConnect(Socket:idremote_client[], remote_clientid); // вызывается когда клиент подключается к нашему сокет серверу
    forward onSocketRemoteDisconnect(Socket:idremote_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
    Source (0.1b): http://files.g-stylezzz.com/socket_p...t_v01b_src.rar

    v0.2a Source: (SSL version):
    Source browser: https://github.com/pBlueG/Socket

    Автор: BlueG

  2. 2 пользователя(ей) сказали cпасибо:
    Salvacore (02.04.2014) [ForD] (26.05.2014)
  3. #2
    Аватар для Salvacore
    Инжунер-погромист

    Статус
    Оффлайн
    Регистрация
    10.05.2013
    Адрес
    Аҧсуа бызшәа
    Сообщений
    2,271
    Репутация:
    418 ±
    Классно.

  4. #3
    Аватар для Trender
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.05.2014
    Сообщений
    117
    Репутация:
    -1 ±
    Перезалей.

  5. #4
    Аватар для Osetin
    •Администратор•

    Статус
    Оффлайн
    Регистрация
    26.03.2013
    Адрес
    ♔Osetia, Vladikavkaz♔
    Сообщений
    3,432
    Репутация:
    1093 ±
    Цитата Сообщение от Trender Посмотреть сообщение
    Перезалей.
    Обновил ссылки

  6. #5
    Аватар для ArtemkO
    Пользователь

    Статус
    Оффлайн
    Регистрация
    12.05.2014
    Сообщений
    13
    Репутация:
    1 ±
    Йа нуб, так и не понял.
    При создании сокета подключается бот, который будет обрабатывать что-то в отдельном потоке?

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

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