----Next_Part(Tue_Jan_13_23:43:21_1998_809)--
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit

¤Ê¤ó¤È¤« send ¦¤Î¥³¡¼¥É¤Ïư¤­¤Þ¤·¤¿:-)

From: matz / netlab.co.jp (Yukihiro Matsumoto)
Subject: [ruby-list:5874] Re: Are there any sample programs for UDP socket ?
Date: Tue, 13 Jan 98 18:44:12 +0900

> ¤µ¤Æ¡¤¤Þ¤º¤¤¤¯¤Ä¤«¤ÎÅÀ¤Ç¼Õºá¤·¤¿Êý¤¬¤è¤¤¤è¤¦¤Êµ¤¤¬¤·¤Þ¤¹¡¥

¼Õºá¤Ê¤ó¤Æ¤È¤ó¤Ç¤â¤¢¤ê¤Þ¤»¤ó¡£¤³¤ó¤Ê³Ú¤·¤¤¸À¸ì¤òºî¤Ã¤Æ¤¯¤À¤µ¤Ã¤¿¤Î¤Ë:-)


>   1. UDP¥Ã¥ÈÀìÍѤΥ¯¥é¥¹¤Ï¤Þ¤À¤¢¤ê¤Þ¤»¤ó¡¥Socket¥¯¥é¥¹¤Ç
>      C¤È¤Û¤È¤ó¤ÉƱ¤¸¤è¤¦¤Ë¤Ý¤Á¤Ý¤Á¥×¥í¥°¥é¥à¤¹¤ë¤·¤«¤Ê¤¤¤Ç¤¹¡¥
>      ÌÌÅݤǤ¹¤Í¡¥Ruby¤é¤·¤¯¤Ê¤¤¤Ç¤¹¤Í¡¥Ä̤ê¤Ç¤¹¡¥¤´¤á¤ó
>      ¤Ê¤µ¤¤¡¥

C ¤Ê¥Ã¥È¥×¥í¥°¥é¥Þ¤Ë¤Ïʬ¤«¤ê¤ä¤¹¤¤¤È¤¤¤¦Ïä⤢¤ê¤Þ¤¹:-) º£¤Ê¤é
UDPsocket ¥¯¥é¥¹¤ËÍ×˾¤ò»¤ë¤È¤¤¤¦¤³¤È¤Ç¤â¤¢¤ê¤Þ¤¹¤è¤Í¡¨Â



  ²® ¤Â¸À¸ì¤Ç¥·¥¹¥Æ¥à¥³¡¼¥ë¤Îsend¤ò»È¤Ã¤¿¤³¤È¤¬¤¢¤ê¤Þ¤¹¤«¡© 

¤Ï¤¤¡£


>      Ruby¤Îsend¤Ï´ðËÜŪ¤Ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤Îsend/sendto¤ÈƱ¤¸¤Ç
>      ¤¹¡¥¤¿¤À¤·¡¤°Ê²¼¤ÎÅÀ¤¬°ã¤¤¤Þ¤¹¡¥

¤³¤ÎÅÀ¤Ï¥Þ¥Ë¥å¥¢¥ë¤«¤éÆÉ¤ß¼è¤ì¤Þ¤·¤¿¡£


>         * sendto¤Î¥¢¥É¥ì¥¹¤Ïpack¤·¤¿ÂΤò»È¤¤¤Þ¤¹¡¥

pack ¤¹¤ë¤Ù¤­¥Æ¥ó¥×¥ì¡¼¥È¤ª¤è¤ÓÍ×ÁǤ¬Ê¬¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£¤Ç¤â¡¢¤Õ¤È»×¤¤
ÉÕ¤¤¤Æperl ¤Î¥Þ¥Ë¥å¥¢¥ë¤ä sys/socket.h ¤òį¤á¤Æ¤Ê¤ó¤È¤«¤Ê¤ê¤Þ¤·¤¿¡£


>         * Ruby¤Îʸ»úÎó¤ÏŤµ¤òÃΤäƤ¤¤Þ¤¹¤«¤émsg,len¤ÎÂå¤ï
>           ¤ê¤Ëʸ»úÎó1¤Ä¤ò»È¤¤¤Þ¤¹¡¥

¤³¤ì¤Ïʸ»úÎó¤ÇÎɤ¤¤Î¤Ç¤¹¤Í¡£¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤·¤¿¡£


>   3. send(2)¤È¤¤¤¦¤Î¤ÏUNIX¤Îman¤Îsection 2(¥·¥¹¥Æ¥à¥³¡¼¥ë)¤Î
>      ¹àÌܤȸÀ¤¦°ÕÌ£¤Ç¤¹¡¥ÀâÌÀ¤¬¾¯¤Ê¤¯¤Æ¤´¤á¤ó¤Ê¤µ¤¤¡¥

¾¯¤Ê¤¯¤È¤âËͤˤÏÄ̤¸¤Æ¤¤¤Þ¤·¤¿¡£¤´°Â¿´²¼¤µ¤¤¡£


>   4. ¤Ê¤Ë¤è¤êRuby¤ÇUDP¥×¥í¥°¥é¥ß¥ó¥°¤ò¤·¤¿¤³¤È¤Î¤¢¤ë¤Ò¤È¤¬¤¤
>      ¤Þ¤»¤ó¡¥¥Ð¥°¤¬¤¢¤ë¤«¤â¡¥

¾¯¤Ê¤¯¤È¤âû¤¤Ê¸»úÎó¤ò send ¤¹¤ë¤À¤±¤Ê¤é¤Ç¤­¤Þ¤·¤¿¡£

¤¤¤¨¤Ð gethostbyname ¤¢¤¿¤ê¤Î¥á¥É¤¬¥¯¥é¥¹¥á¥É¤Ç¤¢¤ë¤³¤È¤¬Ê¬
¤«¤é¤º¤Ë¤Á¤ç¤Ã¤È¶ìÏ«¤·¤Þ¤·¤¿¡£¥¯¥é¥¹¥á¥É¤¸¤ã¤Ê¤¤¤È¤¹¤ë¤È¤«¤Ã¤³°­¤¤¤Î
¤Ç¤¹¤°¤ËÁÛÁü¤Ç¤­¤Æ¤·¤«¤ë¤Ù¤­¤Ê¤Î¤«¤â¤·¤ì¤Þ¤»¤ó¤¬¡¢·ë¶É¥¹¥³¡¼¥É¤òį¤á
¤Æ¤Æµ¤¤¬ÉÕ¤­¤Þ¤·¤¿¡£¥Þ¥Ë¥å¥¢¥ë¤Ë°ì¸À¤¢¤ë¤È¤¦¤ì¤·¤¤¤«¤È»×¤¤¤Þ¤¹¡£


¤È¤¤¤¦¤³¤È¤Ç¡¢¤È¤ê¤¢¤¨¤ºÆ°¤¤¤¿¥µ¥ó¥×¥ë¤ò¤Ä¤±¤Æ¤ª¤­¤Þ¤¹¡£ruby ¤ò»È¤¤¤Ï¤¸
¤á¤ÆÆü¤¬Àõ¤¤¤Î¤Ç¤ª¤·¤ã¤ì¤Êµ­Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡¨Âùïõâéî ÉÕ°
¤Î sendto ¥³¥Þ¥ó¥ÉÁêÅö¤Î¤â¤Î¤Ç¤¹¡£

¤µ¡¢¼¡¤Ï recv ¦¤À¡£
--
¤È¤·¤Á¤ã¤ó // toshi / tea.forus.or.jp, toshi / csce.kyushu-u.ac.jp

----Next_Part(Tue_Jan_13_23:43:21_1998_809)--
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Description: udpclnt.rb

#! /usr/local/bin/ruby
# $Id: udpclnt.rb,v 1.1 1998/01/13 14:40:16 toshi Exp $
# udp socket example - client side
# usage: ruby udpclnt.rb host port message

require "socket"

if ARGV.length ! 
  print "Usage: ruby udpclnt.rb host port message\n"
  exit 1
end

host RGV.shift
service  RGV.shift
message  RGV.shift

remote_addr  ocket.gethostbyname(host)
port  ocket.getservbyname(service, "udp")

server_addr   16, Socket::AF_INET, port, remote_addr[3] ]
sockaddr_in  CCnNx8"

s  ocket.open(Socket::PF_INET, Socket::SOCK_DGRAM, 0)
s.send(message, 0, server_addr.pack(sockaddr_in))
s.close

----Next_Part(Tue_Jan_13_23:43:21_1998_809)----