Google

Go to the first, previous, next, last section, table of contents.


generate_port, try_bind_listen, try_connect, try_accept, register_server

generate_port([use_unix])
:: port ¤ÎÀ¸À®
try_bind_listen(port)
:: port ¤ËÂФ·¤Æ bind, listen
try_connect(host,port)
:: port ¤ËÂФ·¤Æ connect
try_accept(socket,port)
:: connect Í×µá¤ò accept
register_server(control_socket,control_port,server_socket,server_port)
:: connection ¤ÎÀ®Î©¤·¤¿ control socket, server socket ¤ÎÅÐÏ¿
return
generate_port() ¤Î¤ßÀ°¿ô¤Þ¤¿¤Ïʸ»úÎó. ¤½¤Î¾¤ÏÀ°¿ô.
use_unix
0 ¤Þ¤¿¤Ï 1
host
ʸ»úÎó
port,control_port,server_port
À°¿ô¤Þ¤¿¤Ïʸ»úÎó
socket,control_socket,server_socket
À°¿ô
  • ¤³¤ì¤é¤Î´Ø¿ô¤Ï, ±ó³Ö¥×¥í¥»¥¹¤ÈÄÌ¿®¤òÀ®Î©¤µ¤»¤ë¤¿¤á¤Î¥×¥ê¥ß¥Æ¥£¥Ö¤Ç¤¢¤ë.
  • generate_port() ¤ÏÄÌ¿®¤Î¤¿¤á¤Î port ¤òÀ¸À®¤¹¤ë. ̵°ú¿ô¤¢¤ë¤¤¤Ï °ú¿ô¤¬ 0 ¤Î¾ì¹ç, Internet domain ¤Î socket ¤Î¤¿¤á¤Î port ÈÖ¹æ, ¤½¤ì °Ê³°¤Î¾ì¹ç¤Ë¤Ï, UNIX domain (host-internal protocol) ¤Î¤¿¤á¤Î, ¥Õ¥¡¥¤¥ë̾ ¤òÀ¸À®¤¹¤ë. port ÈÖ¹æ¤Ï random ¤ËÀ¸À®¤µ¤ì¤ë¤¬, ¤½¤Î port ¤¬»ÈÍÑÃæ¤Ç¤Ê¤¤ ÊݾڤϤʤ¤.
  • try_bind_listen() ¤Ï, Í¿¤¨¤é¤ì¤¿ port ¤ËÂФ·, ¤½¤Î protocol ¤Ë Âбþ¤·¤¿ socket ¤òÀ¸À®¤·, bind, listen ¤¹¤ë. À®¸ù¤·¤¿¾ì¹ç, socket ¼±Ê̻ҤòÊÖ¤¹. ¼ºÇÔ¤·¤¿¾ì¹ç, -1 ¤¬ÊÖ¤ë.
  • try_connect() ¤Ï, ¥Û¥¹¥È host ¤Î port port ¤ËÂФ· connect ¤ò»î¤ß¤ë. À®¸ù¤·¤¿¾ì¹ç, socket ¼±Ê̻ҤòÊÖ¤¹. ¼ºÇÔ¤·¤¿¾ì¹ç -1 ¤¬ÊÖ¤ë.
  • try_accept() ¤Ï, socket ¤ËÂФ¹¤ë connect Í×µá¤ò accept ¤·, ¿·¤¿¤ËÀ¸À®¤µ¤ì¤¿ socket ¤òÊÖ¤¹. ¼ºÇÔ¤·¤¿¾ì¹ç -1 ¤¬ÊÖ¤ë. ¤¤¤º¤ì¤Î¾ì¹ç¤Ë¤â, socket ¤Ï¼«Æ°Åª¤Ë close ¤µ¤ì¤ë. °ú¿ô port ¤Ï, socket ¤Î protocol ¤òȽÊ̤¹¤ë¤¿¤á¤ËÍ¿¤¨¤ë.
  • register_server() ¤Ï, control, server ¤½¤ì¤¾¤ì¤Î socket ¤ò °ìÁȤˤ·¤Æ, server list ¤ËÅÐÏ¿¤·, ox_push_cmo() ¤Ê¤É¤ÇÍѤ¤¤ë ¥×¥í¥»¥¹¼±Ê̻ҤòÊÖ¤¹.
  • ±ó³Ö¥×¥í¥»¥¹¤Îµ¯Æ°¤Ï, shell() ¤Þ¤¿¤Ï¼êư¤Ç¹Ô¤¦.
[340] CPort=generate_port();
39896
[341] SPort=generate_port();
37222
[342] CSocket=try_bind_listen(CPort);
3
[343] SSocket=try_bind_listen(SPort);
5

/*
¤³¤³¤Ç, ox_launch ¤òµ¯Æ° :
%  ox_launch "127.1" 0 39716 37043 ox_asir "shio:0"
*/

[344] CSocket=try_accept(CSocket,CPort);
6
[345] SSocket=try_accept(SSocket,SPort);  
3
[346] register_server(CSocket,CPort,SSocket,SPort);
0
»²¾È
section ox_launch, ox_launch_nox, ox_shutdown, section ox_launch_generic, section shell, section ox_push_cmo, ox_push_local


Go to the first, previous, next, last section, table of contents.