Communication between AMXX and Python using sockets

For scripting examples for learning how to use AMXX.
User avatar
Archive-Poster
Posts: 1189
Gender:
United States of America

Communication between AMXX and Python using sockets

Post by Archive-Poster »

Python script

Code: Select all

import socket

host = ''
port = 54500

s = socket.socket()
s.bind((host, port))

s.listen(32)
conn, address = s.accept()
print("Connection from: " + str(address))

while True:
    data = conn.recv(256).decode()
    if not data:
        break
    print("from connected user: " + str(data))
    data = input(" -> ");
    conn.send(data.encode())
Pawn script

Code: Select all

#include <amxmodx>
#include <sockets>

#define LOCAL "localhost"
#define PORT 54500

new s, error, data[256];

public plugin_init(){
    register_srvcmd("send", "srvcmd_send");
}

public plugin_cfg(){
    s = socket_open(LOCAL, PORT, SOCKET_TCP, error);
    
    if (!error){
        set_task(0.1, "get_data", .flags="b");
        data = "connected";
        socket_send(s, data, charsmax(data));       
    }
}

public srvcmd_send(){
    new args[32];
    read_args(args, charsmax(args));
    
    socket_send(s, args, charsmax(args));
}

public get_data(){
    if (socket_is_readable(s)){
        socket_recv(s, data, charsmax(data));
        server_print(data);
    }
}

Who is online

Users browsing this forum: No registered users and 1 guest