SEND
Section: Linux Programmer's Manual
(2)
Updated: July 1999
Index
Return to Main Contents
À̸§
send, sendto, sendmsg - ¼ÒÄÏÀ¸·ÎºÎÅÍÀÇ ¸Þ½ÃÁö¸¦ º¸³½´Ù.
»ç¿ë¹ý
#include <sys/types.h>
#include <sys/socket.h>
int send(int s, const void *msg, size_t len,
int flags);
int sendto(int s, const void *msg, size_t len,
int flags, const struct sockaddr *to, socklen_t tolen);
int sendmsg(int s, const struct msghdr *msg,
int flags);
¼³¸í
Send,
sendto,
±×¸®°í
sendmsg
´Â ´Ù¸¥ ¼ÒÄÏÀ¸·Î ¸Þ½ÃÁö¸¦ º¸³»´Âµ¥ »ç¿ëµÈ´Ù.
Send
Àº ¼ÒÄÏÀÌ
connected
»óÅ¿¡ ÀÖÀ» ¶§ »ç¿ëµÈ´Ù. ¹Ý¸é
sendto
¿Í
sendmsg
¾ðÁ¦µç »ç¿ëÇÒ ¼ö ÀÖ´Ù.
¸ñÇ¥ÀÇ ÁÖ¼Ò´Â
to
°¡ ±×°ÍÀÇ Å©±â¸¦ Á¤ÇÏ´Â
tolen
°ú ÇÔ²² ÁÖ¾îÁø´Ù. ¸Þ½ÃÁöÀÇ ±æÀÌ´Â
len.
À¸·Î ÁÖ¾îÁø´Ù. ¸Þ½ÃÁö°¡ ³Ê¹« ±æ¾î¼ ±âÃÊÀûÀÎ ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇØ ÀÚµ¿À¸·Î ³Ñ¾î°¥ ¼ö ¾ø´Ù¸é, ¿¡·¯
EMSGSIZE
°¡ ¹ÝȯµÇ°í, ¸Þ½ÃÁö´Â ÀüÇØÁöÁö ¾Ê´Â´Ù.
send.
¿¡´Â Àü´ÞÀ» ½ÇÆÐÇÒ Â¡ÈÄ´Â ¾ø´Ù. ±¹ºÎÀûÀ¸·Î ÁöÀûµÇ´Â ¿¡·¯´Â -1ÀÇ ¹Ýȯ°ª¿¡ ÀÇÇØ ÁöÀûµÈ´Ù.
¸Þ½ÃÁö°¡ ¼ÒÄÏÀÇ send ¹öÆÛ¿¡ ¸ÂÁö ¾ÊÀ¸¸é,
send
´Â ¼ÒÄÏÀÌ non-blocking I/O mode¿¡ ÀÖÁö ¾Ê´Â´Ù¸é ÀϹÝÀûÀ¸·Î ¸·´Â´Ù
non-blocking mode¿¡¼ ÀÌ·± °æ¿ì¿£,
EAGAIN
À» ¹ÝȯÇÑ´Ù.
select(2)
È£ÃâÀº ¾ðÁ¦ ´ÙÀ½ ÀڷḦ º¸³¾Áö¸¦ °áÁ¤Çϴµ¥ ¾²ÀδÙ.
flags
¸Å°³ º¯¼ö´Â flagwordÀÌ°í, ¾Æ·¡ flag¸¦ °¡Áú ¼ö ÀÖ´Ù:
- MSG_OOB
-
out-of-band
data¸¦ ÀÌ °³³äÀ» Áö¿øÇÏ´Â ¼ÒÄÏÀ¸·Î º¸³½´Ù (e.g.
SOCK_STREAM);
±âÃÊ ÇÁ·ÎÅäÄÝÀº ¹Ýµå½Ã
out-of-band
data¸¦ Áö¿øÇÑ´Ù..
- MSG_DONTROUTE
-
ÆÐŶÀ» Àü¼ÛÇϴµ¥ °ÔÀÌÆ®¿þÀ̸¦ »ç¿ëÇÏÁö ¾Ê°í, Á÷Á¢ ¿¬°áµÈ ³×Æ®¿÷À» ÅëÇؼ È£½ºÆ®·Î º¸³½´Ù. ÀÌ°ÍÀº diagnostic ȤÀº routing program¿¡ ÀÇÇؼ¸¸ »ç¿ëµÈ´Ù. ÀÌ°ÍÀº ¿ÀÁ÷ ÇÁ·ÎÅäÄݱºÀ» À§Çؼ¸¸ Á¤ÀǵȴÙ; ÆÐŶ ¼ÒÄÏÀº ÇÏÁö ¾Ê´Â´Ù.
- MSG_DONTWAIT
-
non-blocking operationÀ» °¡´ÉÄÉ ÇÑ´Ù; operationÀÌ ¸·ÇûÀ» ¶§
EAGAIN
°¡ ¹ÝȯµÈ´Ù. (ÀÌ°ÍÀº ¶ÇÇÑ
O_NONBLOCK
À»
F_SETFL
fcntl(2)
¿Í ÇÔ²² »ç¿ëÇÏ´Â °ÍÀ» °¡´ÉÇÏ°Ô ÇÒ ¼ö ÀÖ´Ù.)
- MSG_NOSIGNAL
-
´Ù¸¥ ÇÑÂÊ ³¡ÀÌ ¿¬°áÀ» ²÷¾úÀ» ¶§, ¼ÒÄÏÀ¸·ÎºÎÅÍ ºñ·ÔµÈ ½ºÆ®¸²»óÀÇ ¿¡·¯¿¡
SIGPIPE
À» º¸³»Áö ¾Êµµ·Ï ¿ä±¸ÇÑ´Ù.
EPIPE
¿¡·¯´Â ¿©ÀüÈ÷ ¹ÝȯµÈ´Ù.
msghdr
±¸Á¶¿¡ ´ëÇÑ ¼³¸íÀ» º¸·Á¸é
recv(2)
À» º¸¶ó.
msg_control
¿Í
msg_controllen
±¸¼º¿ä¼Ò¸¦ »ç¿ëÇÏ´Â Á¦¾î Á¤º¸¸¦ º¸³¾ ¼ö ÀÖ´Ù. Ä¿³ÎÀÌ Ã³¸®ÇÒ ¼ö ÀÖ´Â ÃÖ´ë Á¦¾î ¹öÆÛÀÇ ±æÀÌ´Â
net.core.optmem_max
sysctl¿¡ ÀÇÇØ ¼ÒÄÏ´ÜÀ§·Î Á¦ÇѵǾî ÀÖ´Ù. ;
socket(7).
À» º¸¶ó
¹Ýȯ°ª
º¸³»Áø ¹®ÀÚÀÇ ¼ö¸¦ ¹ÝȯÇϰųª ¿¡·¯ ¹ß»ý½Ã -1À» ¹ÝȯÇÑ´Ù.
¿¡·¯
ÀÌ°ÍÀº ¼ÒÄÏ ·¹À̾ ÀÇÇØ ¹ß»ýµÇ´Â ¸î¸î Ç¥ÁØÀûÀÎ ¿¡·¯´Ù. Ãß°¡ÀûÀÎ ¿¡·¯´Â ±âÃÊ ÇÁ·ÎÅäÄÝ ¸ðµâ·ÎºÎÅÍ ¹ß»ýµÇ°Å³ª ¹ÝȯµÈ´Ù; °¢°¢ÀÇ ¸Å´º¾óÀ» ÂüÁ¶Ç϶ó.
- EBADF
-
½ÇÁ¦ÇÏÁö ¾Ê´Â descriptor°¡ ÁöÁ¤µÇ¾ú´Ù.
- ENOTSOCK
-
µ¶¸³º¯¼ö
s
°¡ ¼ÒÄÏÀÌ ¾Æ´Ï´Ù.
- EFAULT
-
½ÇÁ¦ÇÏÁö ¾Ê´Â »ç¿ëÀÚ °ø°£ ÁÖ¼Ò°¡ ¸Å°³º¯¼ö·Î ÁöÁ¤µÇ¾ú´Ù.
- EMSGSIZE
-
¼ÒÄÏÀÌ ¸Þ½ÃÁö¸¦ ÀÚµ¿À¸·Î º¸³»ÁÙ °ÍÀ» ¿äûÇßÁö¸¸, º¸³»Áø ¸Þ½ÃÁöÀÇ Å©±â°¡ ÀÌ°ÍÀ» ºÒ°¡´ÉÇÏ°Ô ÇÏ¿´´Ù.
- EAGAINȤÀº EWOULDBLOCK
-
¼ÒÄÏÀÌ non-blockingÀ» Ç¥½ÃÇÏ¿´°í, ¿ä±¸µÈ operationÀÌ ±úÁ³´Ù.
- ENOBUFS
-
³×Æ®¿÷ ÀÎÅÍÆäÀ̽º¸¦ À§ÇÑ Ãâ·Â Å¥°¡ °¡µæ á´Ù.
ÀÌ°ÍÀº ÀϹÝÀûÀ¸·Î ÀÎÅÍÆäÀ̽º°¡ Àü¼ÛÀ» ¸ØÃß´Â °ÍÀ¸·Î ³ªÅ¸³´Ù. ÇÏÁö¸¸ ÀÌ°ÍÀº ¼ø°£ÀûÀÎ Á¤Ã¼·Î ÀÎÇÑ °ÍÀÌ´Ù.
(ÀÌ°ÍÀº ¸®´ª½º¿¡¼´Â ÀϾ ¼ö ¾ø´Ù. ÀåÄ¡ Å¥°¡ ³ÑÄ¥ ¶§ ÆÐŶÀº Á¶¿ëÈ÷ ÁߴܵȴÙ.)
- EINTR
-
½ÅÈ£°¡ ¹ß»ýÇß´Ù.
- ENOMEM
-
»ç¿ë °¡´ÉÇÑ ¸Þ¸ð¸®°¡ ¾ø´Ù.
- EINVAL
-
½ÇÁ¦ »ç¿ëµÇÁö ¾Ê´Â µ¶¸³º¯¼ö°¡ Åë°úÇß´Ù.
- EPIPE
-
¼ÒÄÏÀ¸·ÎºÎÅÍÀÇ ¿¬°á¿¡¼ ·ÎÄà ¾Øµå°¡ ²¨Á³´Ù.
MSG_NOSIGNAL
ÀÌ ¼³Á¤µÇ¾î ÀÖÁö ¾ÊÀ» °æ¿ì, ÇÁ·Î¼¼½º ¿ª½Ã
SIGPIPE
¸¦ ¹Þ´Â´Ù.
ȣȯ
4.4BSD, SVr4, POSIX 1003.1g draft (ÀÌ ÇÔ¼ö´Â 4.2BSD¿¡ ÀÖ´Ù).
ÁÖÀÇ
À§¿¡¼ ÁÖ¾îÁø ÃʱâÄ¡´Â Single Unix SpecificationÀ» µû¸¥´Ù,
glibc2¿Í ¸¶Âù°¡ÁöÀÌ´Ù:
flags
µ¶¸³º¯¼ö´Â BSD 4.*¿¡¼ `int'ÀÌ´Ù. ÇÏÁö¸¸, libc4¿Í libc5¿¡¼± `unsigned int'ÀÌ´Ù;
len
µ¶¸³º¯¼ö´Â BSD 4.*°ú libc4¿¡¼ `int'ÀÌ´Ù. ÇÏÁö¸¸ libc5¿¡¼± `size_t'ÀÌ´Ù;
tolen
µ¶¸³º¯¼ö´Â BSD 4.*°ú libc4, libc5¿¡¼ `int'ÀÌ´Ù.
accept(2).
µµ ÂüÁ¶Ç϶ó.
°ü·Ã Ç׸ñ
fcntl(2),
recv(2),
select(2),
getsockopt(2),
sendfile(2),
socket(2),
write(2),
socket(7),
ip(7),
tcp(7),
udp(7)
¿ªÀÚ
ASPLINUX<man@asp-linux.co.kr>, 2000³â 8¿ù 1ÀÏ
Index
- À̸§
-
- »ç¿ë¹ý
-
- ¼³¸í
-
- ¹Ýȯ°ª
-
- ¿¡·¯
-
- ȣȯ
-
- ÁÖÀÇ
-
- °ü·Ã Ç׸ñ
-
- ¿ªÀÚ
-
This document was created by
man2html,
using the manual pages.
Time: 08:07:00 GMT, March 25, 2004