.\" Copyright (c) 1983, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" From: @(#) send. 2 8.2 (Berkeley) 2/21/94 .\" %FreeBSD: src/lib/libc/sys/send. 2, v 1.10. 2.6 2001/12/14 18:34:01 ru Exp % .\" .\" $FreeBSD: doc/ja_JP.eucJP/man/man2/send. 2, v 1.9 2001/12/23 00:03:42 horikawa Exp $ .Dd February 15, 1995 .Dt SEND 2 .Os .Sh ¸íĪ .Nm send , .Nm sendto , .Nm sendmsg .Nd ¼ÒÄÏÀ¸·ÎºÎÅÍ ¸Þ¼¼Áö¸¦ ¼Û½ÅÇÑ´Ù .Sh ÇÁ·Î±×·¥ ¶óÀ̺귯¸® .Lb libc .Sh ¼­½Ä .In sys/types.h .In sys/socket.h .Ft ssize_t .Fn send "int s" "const void *msg" "size_t len" "int flags" .Ft ssize_t .Fn sendto "int s" "const void *msg" "size_t len" "int flags" "const struct sockaddr *to" "socklen_t tolen" .Ft ssize_t .Fn sendmsg "int s" "const struct msghdr *msg" "int flags" .Sh ÇØ¼³ .Fn send , .Fn sendto ¹× .Fn sendmsg (Àº)´Â, ¸Þ¼¼Áö¸¦ ´Ù¸¥ ¼ÒÄÏ¿¡ ¼Û½ÅÇϴµ¥ »ç¿ëµË´Ï´Ù. .Fn send (Àº)´Â, ¼ÒÄÏÀÌ .Em Á¢¼ÓµÇ¾ú´Ù »óÅ¿¡ ÀÖÀ» ¶§¸¸ »ç¿ëÇÒ ¼ö Àִµ¥ ´ëÇØ, .Fn sendto (¿Í)°ú .Fn sendmsg (Àº)´Â ¾ðÁ¦¶óµµ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. .Pp Ÿ°ÙÀÇ ÁÖ¼Ò¸¦ .Fa to ±×¸®°í Áà .Fa tolen ±×¸®°í ±× »çÀÌÁ ÁöÁ¤ÇÕ´Ï´Ù. ¸Þ¼¼ÁöÀÇ ±æÀÌ´Â .Fa len ±×¸®°í ÁöÁ¤ÇÕ´Ï´Ù. ¸Þ¼¼Áö°¡ ³Ê¹« ±æ¾î ±â¹ÝÀÌ µÇ´Â ÇÁ·ÎÅäÄÝÀ» ºÒ°¡ºÐ¿¡ Åë°úÇÒ ¼ö ¾ø´Â °æ¿ì, ¿¡·¯ .Er EMSGSIZE (À»)¸¦ µ¹·ÁÁÖ¾î, ¸Þ¼¼Áö¸¦ ¼Û½ÅÇÏÁö ¾Ê½À´Ï´Ù. .Pp .Fn send ±×·³, ¹è¼ÛÇÒ ¼ö ¾ø´Â °ÍÀº ÀüÇô ³ªÅ¸³ªÁö ¾Ê½À´Ï´Ù. ¹Ýȯ°ª -1 Àº ·ÎÄ÷Π°ËÃâµÈ ¿¡·¯¸¦ ³ªÅ¸³À´Ï´Ù. .Pp ¼Û½ÅÇÏ´Â ¸Þ¼¼Áö¸¦ º¸°ü À¯ÁöÇÏ´Â ½ºÆäÀ̽º°¡ ¼ÒÄÏ¿¡ ¾ø´Â °æ¿ì .Fn send (Àº)´Â Åë»ó ºí·Ï ÇÕ´Ï´Ù. ´Ù¸¸, ¼ÒÄÏÀÌ ºñºí·ÎÅ· ÀÔÃâ·Â ¸ðµå·Î ¼³Á¤µÇ¾î ÀÖ´Â °æ¿ì´Â º°µµÀÔ´Ï´Ù. .Xr select 2 È£ÃâÀ» »ç¿ëÇØ, ÇÑÃþ ´õ ¸¹Àº µ¥ÀÌÅ͸¦ ¾ðÁ¦ ¼Û½ÅÇÒ ¼ö ÀÖÀ»±î ÆÇÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. .Pp .Fa flags ÆÄ¶ó¹ÌÅÍ¿¡´Â ´ÙÀ½¿¡ ³ªÅ¸³ª´Â °ÍÀÇ Áý 1 °³(»ì) ¶Ç´Â º¹¼ö¸¦ Æ÷ÇÔÇÏ´Â °ÍÀÌ °¡´ÉÇÕ´Ï´Ù. .Bd -literal #define MSG_OOB 0x1 /* ´ë¿ª¿Ü µ¥ÀÌÅ͸¦ ó¸®ÇÑ´Ù */ #define MSG_PEEK 0x2 /* Âø½Å ¸Þ¼¼Áö¸¦ µé¿©´Ù º»´Ù */ #define MSG_DONTROUTE 0x4 /* ·çÆÃÀ» ¿ìȸµµ·Î ÇØ, ÀÎÅÍÆäÀ̽º¸¦ Á÷Á¢ »ç¿ëÇÑ´Ù */ #define MSG_EOR 0x8 /* ÀÌ µ¥ÀÌÅÍ·Î ·¹Äڵ带 Á¾·áÇÑ´Ù */ #define MSG_EOF 0x100 /* ÀÌ µ¥ÀÌÅÍ·Î Æ®·£Àè¼Ç(transaction)¸¦ Á¾·áÇÑ´Ù */ .Ed .Pp Ç÷¡±× .Dv MSG_OOB (Àº)´Â, ÀÌ °³³äÀ» ¼­Æ÷Æ®ÇÏ´Â ¼ÒÄÏ (¿¹¸¦ µé¾î, .Dv SOCK_STREAM ) À§ÀÇ .Dq ´ë¿ª¿Ü µ¥ÀÌÅ͸¦ ¼Û½ÅÇϴµ¥ »ç¿ëµË´Ï´Ù. ±â¹ÝÀÌ µÇ°í ÀÖ´Â ÇÁ·ÎÅäÄݵµ .Dq ´ë¿ª¿Ü µ¥ÀÌÅ͸¦ ¼­Æ÷Æ®ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. .Dv MSG_EOR (Àº)´Â, ÀÌ °³³äÀ» ¼­Æ÷Æ®ÇÏ´Â ÇÁ·ÎÅäÄÝ¿ëÀÇ ·¹ÄÚµå ¸¶Å©¸¦ ³ªÅ¸³»´Âµ¥ »ç¿ëµË´Ï´Ù. .Dv MSG_EOF (Àº)´Â, ¼ÒÄÏÀÇ ¼Û½ÅÃøÀÇ ¼Ë´Ù¿îÀ» ¿ä±¸ÇØ, ÁöÁ¤ µ¥ÀÌÅÍÀÇ Á¾·á½Ã¿¡, ÀûÀýÇÑ Áö½ÃÀÇ ¼Û½ÅÀ» ¿ä±¸ÇÕ´Ï´Ù. ÀÌ Ç÷¡±×´Â, .Dv PF_INET ÇÁ·ÎÅäÄÝ ÆÐ¹Ð¸®ÀÇ .Dv SOCK_STREAM ¼ÒÄÏ¿¡ °üÇØ¼­¸¸ ½ÇÀåµÇ¾î Æ®·£Àè¼Ç(transaction) .Tn TCP ( .Xr ttcp 4 (À»)¸¦ ÂüÁ¶)¸¦ ½ÇÀåÇϴµ¥ »ç¿ëµË´Ï´Ù. .Dv MSG_DONTROUTE (Àº)´Â Åë»ó, Áø´Ü ÇÁ·Î±×·¥ ¶Ç´Â °æ·Î ¼³Á¤ ÇÁ·Î±×·¥À¸·Î »ç¿ëµË´Ï´Ù. .Pp .Fa msghdr ±¸Á¶Ã¼ÀÇ »ó¼¼ÇÑ °Í¿¡ ´ëÇÏ¿©´Â, .Xr recv 2 (À»)¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä. .Sh ¹Ýȯ°ª ÀÌ È£ÃâÀº ¼Û½ÅµÈ ij¸¯Åͼö¸¦ µ¹·ÁÁÖ¾î, ¿¡·¯°¡ ÀϾÀ» °æ¿ì´Â -1 (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù. .Sh ¿¡·¯ .Fn send , .Fn sendto ¹× .Fn sendmsg (Àº)´Â ´ÙÀ½ÀÇ °æ¿ì¿¡ ½ÇÇà¿¡ ½ÇÆÐÇÕ´Ï´Ù. .Bl -tag -width Er .It Bq Er EBADF ¹«È¿ÀÎ ±â¼úÀÚ°¡ ÁöÁ¤µÇ¾ú½À´Ï´Ù. .It Bq Er EACCES Ç༱Áö ÁÖ¼Ò´Â ºê·Îµåij½ºÆ® ¾îµå·¹½ºÀ̸ç, .Dv SO_BROADCAST ÇÏÁö¸¸ ¼ÒÄÏ»óÀ¸·Î ¼³Á¤µÇ¾î ÀÖÁö ¾Ê½À´Ï´Ù. .It Bq Er ENOTSOCK Àμö .Fa s ÇÏÁö¸¸ ¼ÒÄÏÀÌ ¾Æ´Õ´Ï´Ù. .It Bq Er EFAULT ÆÄ¶ó¹ÌÅÍ¿¡ ´ëÇØ ¹«È¿ÀÎ À¯Àú °ø°£ ÁÖ¼Ò°¡ ÁöÁ¤µÇ¾ú½À´Ï´Ù. .It Bq Er EMSGSIZE ¼ÒÄÏÀº ¸Þ¼¼Áö°¡ ºÒ°¡ºÐ¿¡ ¼Û½ÅµÇ´Â °ÍÀ» ¿ä±¸Çϰí ÀÖ½À´Ï´Ù¸¸, ¼Û½ÅµÇ´Â ¸Þ¼¼ÁöÀÇ »çÀÌÁî¿¡¼­´Â ºÒ°¡´ÉÇÕ´Ï´Ù. .It Bq Er EAGAIN ¼ÒÄÏÀº ºñºí·ÎÅ·°ú ¸¶Å© µÇ°í ÀÖ¾î ¿ä±¸µÈ Á¶ÀÛÀº ºí·Ï µÇ°ÚÁö¿ä. .It Bq Er ENOBUFS ½Ã½ºÅÛÀº ³»ºÎ ¹öÆÛ¸¦ ÇÒ´çÇÒ ¼ö°¡ ¾ø¾ú½À´Ï´Ù. ¹öÆÛ°¡ ÀÌ¿ë °¡´ÉÇÏ°Ô µÇ¾úÀ» ¶§¿¡ Á¶ÀÛÀÌ ¼º°øÇÒ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. .It Bq Er ENOBUFS ³×Æ®¿öÅ© ÀÎÅÍÆäÀ̽º¿ëÀÇ Ãâ·Â Å¥°¡ ¸¸¹è¿´½À´Ï´Ù. À̰ÍÀº ÀϹÝÀûÀ¸·Î, ÀÎÅÍÆäÀ̽º°¡ ¼Û½ÅÀ» Á¤ÁöÇßÁö¸¸, ±×°ÍÀÌ ÀϽÃÀûÀÎ congestion¿¡ ÀÇÇØ ÀϾ °ÍÀ» ³ªÅ¸³À´Ï´Ù. .It Bq Er EHOSTUNREACH ¸®¸ðÆ® È£½ºÆ®¿¡ µµ´ÞÇÒ ¼ö ¾ø¾ú½À´Ï´Ù. .It Bq Er ECONNREFUSED ¼ÒÄÏÀÌ, ICMP Ç༱ÁöºÒµµ´Þ ¸Þ¼¼Áö¸¦, ¸¶Áö¸·¿¡ ¼Û½ÅÇÑ ¸Þ¼¼Áö·ÎºÎÅÍ ¼ö½ÅÇß½À´Ï´Ù. ÀüÇüÀûÀ¸·Î´Â, ¼ö½ÅÀÚ°¡ ¸®¸ðÆ® Æ÷Æ®·Î ´ë±âÇϰí ÀÖÁö ¾Ê´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. .It Bq Er EHOSTDOWN ¸®¸ðÆ® È£½ºÆ®°¡ ´Ù¿îÇϰí ÀÖ¾ú½À´Ï´Ù. .El .Sh ¹ö±× .Fn sendmsg (Àº)´Â µ¥ÀÌÅͰ¡ Àü¼Û µÇ¾î ¹ö¸± ¶§±îÁö ¹Ýµå½Ã ºí·Ï ÇÏÁö ¾Ê±â ¶§¹®¿¡, ¿Àǵǰí ÀÖ´Â ÆÄÀÏ ±â¼úÀÚ¸¦ .Dv AF_UNIX µµ¸ÞÀÎ ¼ÒÄÏ ( .Xr recv 2 (À»)¸¦ ÂüÁ¶) °æÀ¯·Î ¼Û½ÅÇØ, ±×¸®°í ½ÇÁ¦·Î ¼Û½ÅµÇ±â Àü¿¡ .Fn close ÇÒ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. ±× °á°ú, ¼ö½ÅÃøÀº ´ÝÀº ÆÄÀÏ ±â¼úÀÚ¸¦ ¾ò°Ô µË´Ï´Ù. À̰ÍÀ» ¹æÁöÇÏ´Â È®ÀÎ ¸ÞÄ«´ÏÁòÀÇ ½ÇÀåÀº ¾îÇø®ÄÉÀ̼ÇÀ¸·Î ½Ç½ÃÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. .Sh °ü·Ã Ç׸ñ .Xr fcntl 2 , .Xr getsockopt 2 , .Xr recv 2 , .Xr select 2 , .Xr socket 2 , .Xr write 2 .Sh ¿ª»ç .Fn send ÇÔ¼ö È£ÃâÀº .Bx 4.2 ±×¸®°í µîÀåÇß½À´Ï´Ù.