Raised This Month: $51 Target: $400
 12% 

[Modulo] Sockets3


  
 
 
Thread Tools Display Modes
Author Message
Destro-
Veteran Member
Join Date: Jun 2010
Location: $me->location();
Old 08-17-2013 , 23:08   [Modulo] Sockets3
#1

[Modulo] Sockets 3.

Es una modificación del modulo sockets_hz,que a su vez es una modificación del modulo sockets1.


Code:
/* Opens a new connection to hostname:port via protocol (either SOCKET_TCP or SOCKET_UDP), * returns a socket (positive) or negative or zero on error. * States of error: * 0 - no error * 1 - error while creating socket * 2 - couldn't resolve hostname * 3 - couldn't connect to given hostname:port */ native socket_open(const _hostname[], _port, _protocol = SOCKET_TCP, &_error); /* Opens a new listenning connection bind to hostname:port via protocol (either SOCKET_TCP or SOCKET_UDP), * returns a socket (positive) or negative or zero on error. * States of error: * 0 - no error * 1 - error while creating socket * 2 - couldn't resolve hostname * 3 - couldn't connect to given hostname:port */ native socket_listen(const _hostname[], _port, _protocol = SOCKET_TCP, &_error); /* Closes a Socket */ native socket_close(_socket); /* Accept a connection on a listenning socket * returns a socket (positive) or negative or zero on error. */ native socket_accept(_socket); /* Set a socket in unblocking mode */ native socket_unblock(_socket); /* Recieves Data to string with the given length */ native socket_recv(_socket, _data[], _length); /* Sends data to the Socket */ native socket_send(_socket, const _data[]); /* Same as socket_send but Data can contain null bytes */ native socket_send2(_socket, const _data[], _length); /* This function will return true if the state (buffer content) have changed within the last recieve or * the timeout, where timeout is a value in µSeconds, (1 sec =1000000 µsec). * Use to check if new data is in your socket. */ native socket_change(_socket, _timeout=100000); // Nuevo! =================================================== /* Recieves Data to string with the given length */
native socket_recvfrom(_socket, _data[], _len, &_port, _ip[], _iplen);
/* Sends data to specific server */
native socket_sendto(_socket, _data[], _ip[], _port);


Ejemplos:
Servidor:
PHP Code:
#include <amxmodx>
#include <sockets3>

#define MMO_SERVER    "127.0.0.1"
#define MMO_PORT    30015

new g_socket

public plugin_init()
{
    new 
error
    g_socket 
socket_listen(MMO_SERVERMMO_PORTSOCKET_UDPerror)

    if(!
g_socket || error )
    {
        
set_fail_state("Error listen socket")
        return
    }
    
    
socket_unblock(g_socket
    
    
set_task(1.0"test"flags="b")
}

public 
test()
{
    if(!
socket_change(g_socket0)) return
    
    static 
data[20], ip[25], port
    data
[0] = 0
        
    socket_recvfrom
(g_socketdatacharsmax(data), portip24)
    if(!
data[0]) return
    
    
    new 
result socket_sendto(g_socketdataipport// Le respondemos al cliente
    
    
server_print("data: [%s] - ip:[%s] - port:[%d] - result: [%d]"dataipportresult)


Cliente:
PHP Code:
#include <amxmodx>
#include <sockets> // Para el cliente es suficiente con el modulo viejo

#define MMO_SERVER    "127.0.0.1"
#define MMO_PORT    30015

new g_socket

public plugin_init()
{
    new 
error
    g_socket 
socket_open(MMO_SERVERMMO_PORTSOCKET_UDPerror)

    if(!
g_socket || error )
    {
        
set_fail_state("Error open socket")
        return
    }

    
set_task(1.0"test"flags="b")
}

public 
test()
{
    
socket_send(g_socket"eco")
    
    if(!
socket_change(g_socket0)) return
    
    static 
data[20]
        
    
socket_recv(g_socketdatacharsmax(data))
    if(!
data[0]) return
    

    
server_print("Respuesta: %s"data)


NOTA: socket_send en el include (modulo sockets1/sockets_hz) tiene tres parámetros,pero el ultimo no se usa,pueden dejar la native asi:

PHP Code:
/* Sends data to the Socket */
native socket_send(_socket, const _data[]); 
Attached Files
File Type: zip sockets3.zip (67.4 KB, 205 views)
__________________

Last edited by Destro-; 08-17-2013 at 23:28.
Destro- is offline
Neeeeeeeeeel.-
Some Guy Yellin'
Join Date: Jul 2010
Location: Argentina
Old 08-18-2013 , 00:03   Re: [Modulo] Sockets3
#2

Lo hiciste vos? o:
__________________
Neeeeeeeeeel.- is offline
Send a message via Skype™ to Neeeeeeeeeel.-
Caramelo_ZP
Member
Join Date: Mar 2013
Old 08-18-2013 , 00:08   Re: [Modulo] Sockets3
#3

Intedesante
__________________
IWannaBeBoy
Champ : Master Yii
Caramelo_ZP is offline
Destro-
Veteran Member
Join Date: Jun 2010
Location: $me->location();
Old 08-18-2013 , 00:20   Re: [Modulo] Sockets3
#4

Quote:
Originally Posted by Neeeeeeeeeel.- View Post
Lo hiciste vos? o:
No,mi sobrinito de 2 meses...
xd


Ahora que tengo pc decente voy a ver si me creo una vps en linux para ver si me puedo acomodar todo para compilar para linux .
__________________
Destro- is offline
DiegoCS
Senior Member
Join Date: Mar 2013
Old 08-18-2013 , 00:26   Re: [Modulo] Sockets3
#5

Quote:
Originally Posted by Caramelo_ZP View Post
Interesante
ON: Good Job , lo estaba esperando .
DiegoCS is offline
ChileScripting
BANNED
Join Date: Jan 2013
Old 08-18-2013 , 00:42   Re: [Modulo] Sockets3
#6

Perdonen mi ignorancia, pero nunca supe para que sirven los sockets y ahora que hay algo en español ver si me pueden explicar para que sirven, y si no es mucho pedir que me lo explique alguien que sepa.
ChileScripting is offline
Stereo
Veteran Member
Join Date: Dec 2010
Old 08-18-2013 , 07:07   Re: [Modulo] Sockets3
#7

Quote:
Originally Posted by ChileScripting View Post
Perdonen mi ignorancia, pero nunca supe para que sirven los sockets y ahora que hay algo en español ver si me pueden explicar para que sirven, y si no es mucho pedir que me lo explique alguien que sepa.
Comunicación entre servidor/cliente, en internet hay mucha info

Grande Destro pero versión linux please

Last edited by Stereo; 08-18-2013 at 07:23.
Stereo is offline
Destro-
Veteran Member
Join Date: Jun 2010
Location: $me->location();
Old 08-18-2013 , 10:37   Re: [Modulo] Sockets3
#8

Si joropito se copa y lo compila en linux...
creo que no hay que modificar nada para compilarlo en linux,lo que agregue es igual en linux/win.
__________________
Destro- is offline
Roccoxx
AlliedModders Donor
Join Date: Jan 2012
Location: Argentina
Old 08-18-2013 , 18:27   Re: [Modulo] Sockets3
#9

que lindo destro.

me va a re servir esto

edit: ahi te lo meti en la recopilacion, que cagada que se me quemo el cargador de la notebook y no puedo programar :/
__________________
Tutorials here (Spanish)

Like as another Pijudo said: "Tired and retired"

Last edited by Roccoxx; 08-18-2013 at 18:31.
Roccoxx is offline
Send a message via MSN to Roccoxx
gladius
Veteran Member
Join Date: Jul 2008
Location: Santiago, Chile
Old 08-19-2013 , 01:32   Re: [Modulo] Sockets3
#10

Code:
MF_Log("Sockets3 Error 1 (Contactar con Destro)");
__________________
Proyects
Kreedz Chile Mod [100%] (Fixing some details).


Last edited by gladius; 08-19-2013 at 01:32.
gladius is offline
Send a message via MSN to gladius Send a message via Skype™ to gladius
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 08:51.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode