ÇÁ·Î±×·¡¹Ö

 3206, 6/161 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   anf777
   ¸®´ª½º ÇÁ·Î±×·¡¹Ö Áú¹®ÀÔ´Ï´Ù.(¿¡ÄÚ ¼­¹ö/Ŭ¶óÀ̾ðÆ®)

http://www.hackerschool.org/HS_Boards/zboard.php?id=QNA_programming&no=957 [º¹»ç]


¸®´ª½º¿¡¼­ sip¸¦ ÀÌ¿ëÇÑ Ã¤Æà ÇÁ·Î±×·¥À» ¸¸µé·Á°í Çϴµ¥¿ä...
sip´Â Á¢¾îµÎ°í ¸ÕÀú °£´ÜÇÑ ¿¡ÄÚ ÇÁ·Î±×·¥À» ¸¸µé¾îº¸·Á°í Çϴµ¥...
±×°Ô Àß ¾È µÇ³×¿ä...
¼­¹öÆÄÀÏÀ» ÄÄÆÄÀÏÇÏ°í ½ÇÇà ½ÃÅ°¸é ¼­¹ö´Â °¡¸¸È÷ ±â´Ù·Á¾ß Çϴµ¥...
Ŭ¶óÀ̾ðÆ®ÇÑÅ× ¸Þ¼¼Áö¸¦ ¹ÞÀº°Íó·³ ¹®ÀÚ(Ŭ¶óÀ̾ðÆ® ip°¡ Ãâ·ÂµÇ°Ô ÇسùÀ½)¸¦ Ãâ·ÂÇÏ°í Á¾·áµË´Ï´Ù.
Çб³ ¼­¹ö¿¡¼­¶û Á¦ ÄÄÇ»ÅÍ¿¡ vmware ±ò¾Æ¼­ Çغôµ¥ µÑ´Ù ±×·¯³×¿ä...
¼Ò½º ¿Ã·Á³õÀ» Å×´Ï °í¼ö´Ôµé Ä£ÀýÇÑ ´äº¯ ºÎŹµå¸³´Ï´Ù.
///////////////////////////////////////////////////////
¼­¹ö¼Ò½º
#include <stdio.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

#define MAXPENDING 5
#define RCVBUFSIZE 32

void DieWithError(char * errorMessage);
void HandleTCPClient(int clntSocket);

int main(int argc, char * argv[])
{
        int servSock;
        int clntSock;
        struct sockaddr_in echoServAddr;
        struct sockaddr_in echoClntAddr;
        unsigned short echoServPort;
        unsigned int clntLen;

        if (argc != 2)
        {
                fprintf(stderr, "Usage: %s <Server Port>/n", argv[0]);
                exit(1);
        }

        echoServPort = atoi(argv[1]);

        if ((servSock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0)
                DieWithError("socket() failed");

        memset(&echoServAddr, 0, sizeof(echoServAddr));

        echoServAddr.sin_family = AF_INET;
        echoServAddr.sin_addr.s_addr = htons(INADDR_ANY);
        echoServAddr.sin_port = htons(echoServPort);

        if (bind(servSock, (struct sockaddr *) &echoServAddr, sizeof(echoServAddr)) <0)

        if(listen(servSock, MAXPENDING) < 0)
                DieWithError("listen() failed");

        for (;;)
        {
                clntLen = sizeof(echoClntAddr);
                
                if ((clntSock = accept(servSock, (struct sockaddr *) &echoClntAddr, &clntLen)) <0)

                printf("Handing client %s\n", inet_ntoa(echoClntAddr.sin_addr));
                HandleTCPClient(clntSock);
        }
}

void DieWithError(char * errorMessage)
{
        perror(errorMessage);
        exit(1);
}

void HandleTCPClient(int clntSocket)
{
        char echoBuffer[RCVBUFSIZE];
        int recvMsgSize;

        if ((recvMsgSize = recv(clntSocket, echoBuffer, RCVBUFSIZE, 0)) < 0)
                DieWithError("recv() failed");

        while (recvMsgSize > 0)
        {
                if (send(clntSocket, echoBuffer, recvMsgSize, 0) != recvMsgSize)
                        DieWithError("send() failed");

                if ((recvMsgSize = recv(clntSocket, echoBuffer, RCVBUFSIZE, 0)) < 0)
                        DieWithError("recv() failed");
        }

        close(clntSocket);
}

///////////////////////////////////////////////////////
Ŭ¶óÀ̾ðÆ® ¼Ò½º
#include <stdio.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

#define RCVBUFSIZE 32

void DieWithError(char * errorMessage);

int main(int argc, char * argv[])
{
        int sock;
        struct sockaddr_in echoServAddr;
        unsigned short echoServPort;
        char * servIP;
        char * echoString;
        char echoBuffer[RCVBUFSIZE];
        unsigned int echoStringLen;
        int bytesRcvd, totalBytesRcvd;

        if((argc<3) || (argc>4))
        {
                fprintf(stderr, "Usage: %s <Server IP> <Echo Word> [<Echo Port>]\n", argv[0]);
                exit(1);
        }

        servIP = argv[1];
        echoString = argv[2];

        if(argc==4) echoServPort = atoi(argv[3]);
        else echoServPort = 7;

        if((sock=socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0)
                DieWithError("socket() failed");

        memset(&echoServAddr, 0, sizeof(echoServAddr));
        echoServAddr.sin_family = AF_INET;
        echoServAddr.sin_addr.s_addr = inet_addr(servIP);
        echoServAddr.sin_port = htons(echoServPort);

        if(connect(sock, (struct sockaddr *) &echoServAddr, sizeof(echoServAddr)) < 0)
                DieWithError("connect() failed");
        echoStringLen = strlen(echoString);

        if(send(sock, echoString, echoStringLen, 0) != echoStringLen)
                DieWithError("send() sent a different number of bytes than expected");

        totalBytesRcvd = 0;
        printf("Received: ");
        while (totalBytesRcvd < echoStringLen)
        {
                if((bytesRcvd = recv(sock, echoBuffer, RCVBUFSIZE -1, 0)) <= 0)
                        DieWithError("recv() failed or connection closed prematurely");
                totalBytesRcvd += bytesRcvd;
                echoBuffer[bytesRcvd] = '\0';
                printf(echoBuffer);
        }
        printf("\n");

        close(sock);
        exit(0);

}

void DieWithError(char * errorMessage)
{
        perror(errorMessage);
        exit(1);
}





  Hit : 4092     Date : 2005/12/03 11:39



    
3106   c¾ð¾î ¾Ë°í¸®Áò Áú¹®ÀÔ´Ï´Ù.[3]     alstn8150
10/12 3730
3105   "À©µµ¿ì¿¡¼­ ¼ö»óÇÑ Æ÷Æ® °­Á¦·Î Á×ÀÌ´Â Åø"¿¡ ´ëÇÑ...[1]     alswlgns333
01/19 3019
3104   n!À» ±¸ÇÏ´Â ÄÚµå[7]     alswovkdlxj
05/16 3389
3103   À©µµ¿ì ºñ½ºÅ¸´Â xp ¶û ¸í·É¾î°¡ Ʋ·Á¿ä?[4]     alwjdgmlwn01
06/17 2773
3102   posix-c¿Í ±×³É C¾ð¾îÀÇ Â÷ÀÌÁ¡À» ¾Ë·ÁÁÖ¼¼¿ä^^     amsalja
06/29 2699
3101   °£´ÜÇÑ ½©ÇÁ·Î±×·¡¹Ö Áú¹®ÀÔ´Ï´Ù.[4]     amsalja
08/06 2686
3100   C¾ð¾î ¼Ò½ºÁú¹®ÀÔ´Ï´Ù![5]     an0088
01/05 5118
3099   Á¦ Çϵåµð½ºÅ©Dµå¶óÀ̺꿡 vc_red¶ó´Â °ÍµéÀÌ..     anbbyong
05/07 22031
3098   gccÄÄÆÄÀÏ·¯ °ü·Ã[1]     anchor37
09/18 3064
3097   ±×·³ gcj¶ó´Â ¸í·É¾î´Â ÀÚ¹ÙÄÄÆÄÀÏ·¯ ¿ªÈ°À» Çϴ°ǰ¡¿ä?[2]     anchor37
09/19 3400
  ¸®´ª½º ÇÁ·Î±×·¡¹Ö Áú¹®ÀÔ´Ï´Ù.(¿¡ÄÚ ¼­¹ö/Ŭ¶óÀ̾ðÆ®)     anf777
12/03 4091
3095     [re] ÇØÄ¿½ºÄð ÁßÇб³ C¾ð¾î ¸¸È­¿¡ °üÇؼ­ Áú¹®Àä!![1]     answp
12/28 2777
3094     [re] ¾îµð°¡ ¹®Á¦Àϱî¿ä?[1]     answp
01/16 2755
3093       [re] [re] [ÀçÁú¹®]¼¼±×¸àÅ×ÀÌ¼Ç ¿À·ù[7]     answp
01/27 2785
3092   Áú¹®µå·Á¿©[1]     aoms1013
10/15 2669
3091   ÇØÅ·Åø¿¡¼­ ip ¾øÀÌ Çϵ忡 ½É´Â°Å¿¡´Â ¾î¶²°Ô ÀÖÀ»±î¿ä?[2]     aowlrgmlals
11/27 4274
3090   win7¿¡¼­ Å°·Î±× ¸¸µé°í ½ÇÇà½Ã Áú¹® µå¸³´Ï´Ù.[1]     ÂôÄí
05/30 3187
3089   c++ ´Ù¸¥Å¬·¡½ºÀÇ ¸â¹öº¯¼ö °ª °¡Á®¿Í¼­ »ç¿ë¹æ¹ýÁú¹®ÀÌ¿©[2]     ÀÔ¹®»ý
02/02 15909
3088   c¾ð¾î °øºÎÇÏ·Á°í Çϴµ¥¿ä~[5]     apfhd86
07/08 2689
3087   Ã¥ ÃßõÁ» ºÎŹµå¸³´Ï´Ù.[2]     aplombna
01/25 2675
[1][2][3][4][5] 6 [7][8][9][10]..[161]

Copyright 1999-2024 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org