Фрагмент кода
Этот раздел сейчас дорабатывается, приносим извинения за неудобства. Если вам нужна срочная помощь, обратитесь в службу поддержки Tibbo.
Небольшой фрагмент кода, показывающий, как получать и освобождать сокеты. Ради простоты мы пожертвовали надёжностью, так что не принимайте этот код за образец работы с объектом sock. Смотрите только на части, относящиеся к библиотеке SOCK - сейчас важны именно они.
...
'set "#SOCK_MAX_SIGNATURE_LEN 4" and "#define SOCK_DEBUG_PRINT 1" before running this test
dim tcp_sock as byte 'to remember the socket number we've got
net.ip="192.168.1.93" '<--- edit as needed
'get a socket
tcp_sock=sock_get("TCPS")
'gotta check if there was a free socket for us...
if tcp_sock=255 then
sys.halt '...uh-huh, out of sockets!
end if
'setup the socket
sock.num=tcp_sock
sock.rxbuffrq(1)
sock.txbuffrq(1)
sys.buffalloc
sock.protocol=PL_SOCK_PROTOCOL_TCP
sock.targetip="192.168.1.67" '<--- edit as needed
sock.targetport=10000 '<--- edit as needed
sock.connect
while sock.statesimple<>PL_SSTS_EST
wend
'send data -- we use the signature of the socket's user
sock.setdata(sock_who_uses(tcp_sock))
sock.send
while sock.txlen>0
wend
'close the connection
sock.close
while sock.statesimple<>PL_SSTS_CLOSED
wend
'release the socket
sock_release(tcp_sock)
...
А вот что появилось в панели вывода TIDE при выполнении кода:
SOCK> 'TCPS' got socket #2SOCK> 'TCPS' released socket #2
Первое сообщение соответствует sock_get(), второе - sock_release(). «TCPS» - подпись, которую оставили мы, она означает «TCP socket». Получен сокет с номером 2, потому что мы запускали этот код внутри большой программы, где множество других сокетов используется для множества других задач.
Приведённый выше пример устанавливает исходящее соединение с 192.168.1.67:10000. В нашем тесте это был ПК с IO Ninja - нашей программой-сниффером и терминалом (скачать её можно на ninja.tibbo.com). Мы открыли в IO Ninja «слушающий сокет» и увидели следующее:
Accepted TCP connection from 192.168.1.93:10254TCPSRemote node 192.168.1.93:10254 has closed TCP connection
Эта «TCPS» - подпись, которую наш код передал при вызове sock_get(). В Ninja она появилась из-за строки sock.setdata(sock_who_uses(tcp_sock)) в коде.