Prosty przykład jak używać socketów z poziomu pluginu amxx
[pawn]#include
#include
#include
#define SITE „/index.php/2011/09/12/info-po-smierci/6”
#define HOST „darkgl.pl”
#define PLUGIN „New Plug-In”
#define VERSION „1.0”
#define AUTHOR „DarkGL”
new g_Socket;
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd(„say /test”,”test”)
}
public test(id){
new iError,szSendBuffer[512]
g_Socket = socket_open(HOST, 80, SOCKET_TCP, iError)
switch (iError)
{
case 1:
{
log_amx(„Unable to create socket.”)
return ;
}
case 2:
{
log_amx(„Unable to connect to hostname.”)
return ;
}
case 3:
{
log_amx(„Unable to connect to the HTTP port.”)
return ;
}
}
format(szSendBuffer, charsmax(szSendBuffer), „GET %s^nHost:%s^r^n^r^n”, SITE, HOST)
socket_send(g_Socket, szSendBuffer, charsmax(szSendBuffer))
set_task(1.0, „socketAnswer”, .flags = „b”)
}
public socketAnswer(){
if (socket_change(g_Socket)) {
new szData[1024]
socket_recv(g_Socket, szData, charsmax(szData) )
log_amx(szData);
socket_close(g_Socket);
remove_task( 0 );
}
}
[/pawn]
Pobiera on kod html strony http://www.darkgl.pl/index.php/2011/09/12/info-po-smierci/6 oczywiście socketów można używać do jeszcze wielu innych rzeczy (wymienianie informacji między serwerami itp.)
A tutaj linki do tutoriali (po angielsku)
http://forums.alliedmods.net/showthread.php?t=41913
http://forums.alliedmods.net/showthread.php?t=151401
http://forums.alliedmods.net/showthread.php?t=142858
http://forums.alliedmods.net/showthread.php?t=150519
Fajnie, dziękować, ale mam taki kod, do którego sam doszedłem i nie najlepiej to działa. Raz pobiera stronę, raz tylko kilka pierwszych znaków, nie wiem dlaczego.
Da się tak pobrać ilość graczy na innym serwerze 😉 ?
Oczywiście że tak