/socklisten - 08/09/03 07:54 PM
i dont really get this, if i were to socklisten on port 6667, would this mean that if someone opens a socket to my ip, it would allow me to accept the connection in the on socklisten event?
;open listening socket alias startlisten socklisten listensocket 6667 ;close listening socket alias stoplisten sockclose listensocket ;close all accepted connections alias closeall sockclose acceptsock* ;wait for incoming connections on *:socklisten:listensocket:{ if ($sockerr) { echo listenerror! | return } ;generate unique name var %name = acceptsocket $+ $ticks ;accept connection sockaccept %name ;use $sock to retreive info echo accepted connection from $sock(%name).ip } ;wait for incoming data (note the wildcard, it will respond to any socket opened in the ON SOCKLISTEN) on *sockread:acceptsock*:{ if ($sockerr) { echo readerror! | return } echo Received data from $sock(%name).ip : ;read data sockread %line ;check if any data was read while ($sockbr) { ;echo data, and check for empty line echo $iif(%line,$ifmatch,[empty line]) ;read next line sockread %line } }
alias serv.open { socklisten connect 6667 } alias serv.close { sockclose connect sockclose client.* } alias serv.connect { sockopen test $ip 6667 } alias serv.test { sockwrite -tn client.* TEST bkshdg sockwrite -tn test test test } on *:socklisten:connect:{ sockaccept client.1 echo -a client. [ $+ [ $sock(client.1).ip ] ] sockrename client.1 client. [ $+ [ $sock(client.1).ip ] ] } on *:sockread:client.*:{ if ($sockerr) { return } sockread %client tokenize 32 %client echo -s $sockname - $1- }
alias serv.start { socklisten connect 6667 } alias serv.close { sockclose client.* sockclose connect } alias serv.connect { sockopen client.me $ip 6667 } alias serv.test { sockwrite -tn client.* TEST } on *:socklisten:connect:{ sockaccept client.1 echo -a client. [ $+ [ $sock(client.1).ip ] ] sockrename client.1 client. [ $+ [ $sock(client.1).ip ] ] } on *:sockread:client.*:{ if ($sockerr) { return } sockread %client tokenize 32 %client echo -a $sockname - $1- } menu status { Open Server: serv.start Close Server: serv.close Connect: serv.connect Test: serv.test }