linux man page : ¼ÒÄÏÀ» ÅëÇØ µ¥ÀÌÅ͸¦ Àü¼ÛÇÑ´Ù.
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
1.3Àý. ¹Ýȯ°ªÀÇ ³»¿ëÀº ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÀÌ µÇ¾î¾ß ÇÔ

'¼º°ø ÇÒ °æ¿ì º¸³»Áø packet Å©±â °ª(byte)À» ¹ÝȯÇÏ°í ½ÇÆÐÇßÀ»°æ¿ì¿¡´Â -1À» ¹ÝȯÇϸç, Àû´çÇÑ errno °ªÀ» ¼³Á¤ÇÑ´Ù.'
<a href="/modules/moniwiki/wiki.php/manSearch?google=none&name=sendto">sendto</a>(2)

1장. sendto(2)

차례
1.1절. »ç¿ë¹ý
1.2절. ¼³¸í
1.3절. ¹Ýȯ°ª
1.4절. ¿¡·¯
1.5절. ¿¹Á¦

¼ÒÄÏÀ» ÅëÇØ µ¥ÀÌÅ͸¦ Àü¼ÛÇÑ´Ù.


1.1절. »ç¿ë¹ý

#include <sys/types.h>

#include <sys/socket.h>

int  sendto(int s, const void *msg, size_t len, int flags,
       const struct sockaddr *to, socklen_t tolen);
		


1.2절. ¼³¸í

ÀÌÇÔ¼ö´Â ´Ù¸¥ ¼ÒÄÏÀ¸·Î ¸Þ½ÃÁö¸¦ º¸³»±â À§Çؼ­ »ç¿ëµÈ´Ù. ÀÌ ÇÔ¼ö´Â ¿¬°áÁöÇâ¼ÒÄÏ(TCP)°ú ±×·¸Áö¾ÊÀº ¼ÒÄÏŸÀÔ(UDP) ¸ðµÎ¿¡ »ç¿ë°¡´ÉÇÏ´Ù.

s´Â ¸Þ½ÃÁö¸¦ º¸³»°íÀÚ ÇÏ´Â ¼ÒÄÏÀÇ ÁöÁ¤ÀÚÀÌ´Ù.

msg´Â º¸³»°íÀÚ ÇÏ´Â ¸Þ½ÃÁöÀ̸ç, len´Â ¸Þ½ÃÁöÀÇ ±æÀÌÀÌ´Ù.

to´Â º¸³»°íÀÚÇÏ´Â °÷ÀÇ ÁÖ¼ÒÁ¤º¸¸¦ °¡Áö°í ÀÖ´Ù. »ç½Ç ¿¬°áÁöÇâÀ̶ó¸é ¿¬°áµÈ ¼ÒÄÏÀ» ÅëÇØ¼­ ±×³É ¾²±â¸¸ ÇÏ¸é µÊÀ¸·Î ÀÌ Á¤º¸´Â ÇÊ¿ä¾ø´Ù(NULL), ±×·¯³ª ¿¬°áÁöÇâÀÌ ¾Æ´Ñ UDP¿Í °°Àº ¿¬°áÀϰæ¿ì ÁÖ¼Ò±¸Á¶Ã¼¸¦ ä¿öÁÖ¾î¾ß¸¸ Á¦´ë·Î ¸Þ½ÃÁö°¡ Àü´ÞµÉ °ÍÀÌ´Ù. tolen´Â sockaddr ±¸Á¶Ã¼ÀÇ Å©±âÀÌ´Ù.

flags´Â ´ÙÀ½Áß ¼±ÅÃÇØ¼­ ÁöÁ¤ÇÒ¼ö ÀÖ´Ù.

MSG_OOB

oub-of-band data¸¦ ÀÌ °³³äÀ» Áö¿øÇÏ´Â ¼ÒÄÏÀ¸·Î º¸³½´Ù.

MSG_DONTROUTE

ÆÐŶÀ» Àü¼ÛÇϴµ¥ °ÔÀÌÆ®¿þÀ̸¦ »ç¿ëÇÏÁö ¾Ê°í Á÷Á¢ ¿¬°áµÈ ³×Æ®¿öÅ©¸¦ ÅëÇØ¼­ È£½ºÆ®·Î º¸³½´Ù. À̰ÍÀº diagnostic ȤÀº routing ÇÁ·Î±×·¥¿¡ ÀÇÇØ¼­¸¸ »ç¿ëÇÑ´Ù.

MSG_DONTWAIT

non-blockingÀ» °¡´ÉÇÏ°Ô ÇÑ´Ù.

MSG_NOSIGNAL

´Ù¸¥ ÇÑÂÊÀÇ ¼ÒÄÏÀÇ ¿¬°áÀÌ ²÷°åÀ»¶§, ¼ÒÄÏÀ¸·ÎºÎÅÍ ¹ß»ýÇÏ´Â ½ºÆ®¸²»óÀÇ SIGPIPE¸¦ º¸³»Áö ¾Êµµ·Ï ¿ä±¸ÇÑ´Ù. ±×·¯³ª EPIPE¿¡·¯´Â ¿©ÀüÈ÷ ¹ÝȯµÈ´Ù.


1.3절. ¹Ýȯ°ª

¼º°øÇÒ°æ¿ì 0À» ½ÇÆÐÇßÀ»°æ¿ì¿¡´Â -1À» ¹ÝȯÇϸç, Àû´çÇÑ errno °ªÀ» ¼³Á¤ÇÑ´Ù.


1.4절. ¿¡·¯

EBADF

s °¡ À¯È¿ÇÑ ±â¼úÀÚ°¡ ¾Æ´Ï´Ù.

ENOTSOCK

s °¡ ¼ÒÄÏÀÌ ¾Æ´Ñ ÆÄÀÏÀϰæ¿ì

EFAULT

½ÇÁ¦ÇÏÁö ¾Ê´Â »ç¿ëÀÚ °ø°£ÁÖ¼Ò°¡ ¸Å°³º¯¼ö·Î ÁöÁ¤µÇ¾ú´Ù.

EINTR

½ÅÈ£¹ß»ýÀ¸·Î ÀÎÇÏ¿© ÀÎÅÍ·´Æ®°¡ °É·È´Ù.

EPIPE

¿¬°áµÈ ¼ÒÄÏÀÌ ±úÁ³´Ù. MSG_NOSIGNALÀÌ ¼³Á¤µÇ¾î ÀÖÁö ¾ÊÀ»°æ¿ì ÇÁ·Î¼¼½º´Â SIGPIPE½ÅÈ£¸¦ ¹Þ°Ô µÈ´Ù.



1.5절. ¿¹Á¦

#include <sys/socket.h>

#include <sys/stat.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <string.h>

int main(int argc, char **argv)
{
    int server_sockfd, client_sockfd;
    int client_len, n;
    char buf[80];
    struct sockaddr_in clientaddr, serveraddr;

    client_len = sizeof(clientaddr);

    if ((server_sockfd = socket (AF_INET, SOCK_STREAM, 0)) < 0)
    {
        perror("socket error : ");
        exit(0);
    }
    bzero(&serveraddr, sizeof(serveraddr));
    serveraddr.sin_family = AF_INET;
    serveraddr.sin_addr.s_addr = htonl(INADDR_ANY);
    serveraddr.sin_port = htons(atoi(argv[1]));

    bind (server_sockfd, (struct sockaddr *)&serveraddr, sizeof(serveraddr));
    listen(server_sockfd, 5);

    while(1)
    {
        memset(buf, 0x00, 80);
        client_sockfd = accept(server_sockfd, (struct sockaddr *)&clientaddr,
                            &client_len);

        if ((n = read(client_sockfd, buf, 80)) <= 0)
        {
            close(client_sockfd);
            continue;
        }
        sendto(client_sockfd,(void *)buf, 80, 0,
                        NULL, client_len);
        close(client_sockfd);
    }
}
		
telnetÀ¸·Î °£´ÜÇÏ°Ô Å×½ºÆ®ÇÒ¼ö ÀÖ´Â echo ¼­¹öÀÌ´Ù.

EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.