À©¼Ó : echo ¼­¹ö ÇÁ·Î±×·¥
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®
ÇöÀçÀ§Ä¡ : Code>C>echo_server_win



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

echo ¼­¹ö ÇÁ·Î±×·¥

  1. À©¼Ó(winsock)±â¹Ý ¿¡ÄÚ ¼­¹ö ÇÁ·Î±×·¥À¸·Î BSD ¼ÒÄϰú POSIX ÀÎÅÍÆäÀ̽º·Î ¸¸µé¾úÀ½.
  2. ¿¡ÄÚ Å¬¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥°ú ½ÖÀ¸·Î Å×½ºÆ®ÇÒ ¼ö ÀÖ´Ù.

#include <winsock.h>   
#include <stdio.h>   
   
#define MAX_PACKETLEN 512   
#define PORT 5552   
   
int main()   
{   
    WSADATA wsaData;   
    int status;   
    int SockLen;   
    int Readn,Writen;   
    SOCKET EndpointSocket, ClientSocket;   
    struct sockaddr_in SockInfo, ClientSockInfo;   
    char ReadBuffer[MAX_PACKETLEN];   
   
   
    if(WSAStartup(MAKEWORD(2,2),&wsaData)!= 0)   
    {   
        printf("error\r\n");   
        return 0;   
    }   
   
    EndpointSocket = socket( AF_INET, SOCK_STREAM, 0 );   
    if( EndpointSocket == INVALID_SOCKET )   
        return 1;   
   
    printf("Success socket create\r\n");   
    ZeroMemory(&SockInfo, sizeof( struct sockaddr_in ));   
   
    SockInfo.sin_family = AF_INET;   
    SockInfo.sin_port = htons( PORT );   
    SockInfo.sin_addr.S_un.S_addr = htonl(INADDR_ANY);   
   
    status = bind( EndpointSocket, (struct sockaddr*)&SockInfo, sizeof( struct sockaddr_in) );   
    if( status == SOCKET_ERROR)    
    {   
        printf("Bind Error\n");   
        return 0;   
    }   
    if( SOCKET_ERROR == listen( EndpointSocket, 5 ))   
    {   
        printf("listen Error\n");   
        return 0;   
    }   
   
    while(1)   
    {   
        ZeroMemory( &ClientSockInfo, sizeof( struct sockaddr_in ) );   
        SockLen = sizeof(struct sockaddr_in);   
        ClientSocket = accept( EndpointSocket, (struct sockaddr*)&ClientSockInfo, &SockLen );   
        if(ClientSocket == INVALID_SOCKET)   
        {   
            printf("Accept Error\n");   
            closesocket(EndpointSocket);   
            WSACleanup();   
            return 1;   
        }   
        printf("Accept Client\n");   
        Readn = recv( ClientSocket, ReadBuffer, MAX_PACKETLEN,0 );   
        if( Readn > 0 )   
        {   
            Writen = send( ClientSocket, ReadBuffer, Readn, 0 );   
        }   
        else   
        {   
            printf("read Error\n");   
        }   
        closesocket(ClientSocket);    
    }   
    closesocket( EndpointSocket );    
    WSACleanup();   
    return 0;   
   
}   
 

°ü·Ã ±Û


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