ÇÁ·Î±×·¡¹Ö

 3206, 5/161 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   whtjdwls151
   TCP/IP ¼ÒÄÏ ÇÁ·Î±×·¡¹Ö ¿À·ù

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


¾È³çÇϼ¼¿ä

TCP/IP·Î ÇÁ·Î±×·¥ ¸¸µé´Ù°¡ Àß ¾ÈµÇ´Â ºÎºÐÀÌ À־ Áú¹®µå¸³´Ï´Ù.

Àú´Â C¾ð¾î·Î ±¸ÇöÇÏ·Á°í ÇÕ´Ï´Ù.

Á¦°¡ ÇÑ ÇÁ·Î±×·¥ÀÌ ¼­¹ö¿Í Ŭ¶óÀ̾ðÆ® ¿ªÇÒÀ» ÇÏ´Â Äڵ带 ±¸Çö ÇؾßÇϴµ¥¿ä



ÄÚµå¼ø¼­

/*

client ¼ÒÄÏ º¯¼ö= hSocket

server ¼ÒÄÏ º¯¼ö= hServSock

µé¾î¿Ã client ¼ÒÄÏ º¯¼ö= hClntSock ¶ó°í ÇսôÙ.

*/

socket(hClntSock¿¡ ÆÄÀϵð½ºÅ©¸³ÅÍ ÇÒ´ç)-connect(´Ù¸¥ ÇÁ·Î±×·¥¿¡°Ô ¿¬°á ¿äû)-socket(hServSock¿¡ ÆÄÀϵð½ºÅ©¸³ÅÍ ÇÒ´ç)-bind(ÁÖ¼ÒÁ¤º¸ÇÒ´ç)-listen(´ë±â)-accept(Ŭ¶óÀ̾ðÆ® ¿¬°á ¿äû ¼ö¶ô)



ÀÌ·¸°Ô ±¸ÇöÇϸé, ¾ç¹æÇâÀ¸·Î

´Ù¸¥ ÇÁ·Î±×·¥1 -> Áö±Ý¼³¸íÇÑ ÇÁ·Î±×·¥ -> ´Ù¸¥ ÇÁ·Î±×·¥2



ÀÌ·¸°Ô µÇÁö ¾Ê³ª¿ä?

Ã¥¿¡¼­´Â ÀÌ·¸°Ô ±¸ÇöµÈ´Ù°í º»ÀûÀÌ ÀÖ´Â °Å °°¾Æ¼­ ±¸ÇöÇØ º¸¾Ò½À´Ï´Ù

¾Æ·¡´Â Á¦°¡ ±¸ÇöÇÑ ÄÚµåÀÔ´Ï´Ù.
±×·±µ¥ ¿À·ù°¡ ¹ß»ýÇϳ׿ä.

---------------------------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <WinSock2.h>

#define BUF_SIZE 1024

int main(void)
{
  WSADATA wsaData;
  SOCKET hSocket, hServSock, hClntSock;

/*

client ¼ÒÄÏ º¯¼ö= hSocket

server ¼ÒÄÏ º¯¼ö= hServSock

µé¾î¿Ã client ¼ÒÄÏ º¯¼ö= hClntSock ¶ó°í ÇսôÙ.

*/
  char message[BUF_SIZE];
  int strLen;
  SOCKADDR_IN servAdr, servAdrs, clntAdr;

int clntAdrSize;

if(WSAStartup(MAKEWORD(2, 2), &wsaData)!=0)
  {
   printf("¿¡·¯ ¸Þ¼¼Áö : ¶óÀ̺귯¸® ÃʱâÈ­ ½ÇÆÐ\n\n");
   printf("Àá½ÃÈÄ ´Ù½Ã ½ÇÇàÇØÁÖ¼¼¿ä^^;;");
   Sleep(5000);
   exit(1);
  }

hSocket=socket(PF_INET, SOCK_STREAM, 0);
  if(hSocket==INVALID_SOCKET)
  {
   printf("¿¡·¯ ¸Þ¼¼Áö : ¼ÒÄÏ »ý¼º ½ÇÆÐ\n\n");
   printf("Àá½ÃÈÄ ´Ù½Ã ½ÇÇàÇØÁÖ¼¼¿ä^^;;");
   Sleep(5000);
   exit(1);
  }

memset(&servAdr, 0, sizeof(servAdr));
  servAdr.sin_family=AF_INET;
  servAdr.sin_addr.s_addr=inet_addr("127.0.0.1");
  servAdr.sin_port=htons(atoi("9190"));

if(connect(hSocket, (SOCKADDR*)&servAdr, sizeof(servAdr))==SOCKET_ERROR)
  {
   printf("¿¡·¯ ¸Þ¼¼Áö : ¿¬°á ½ÇÆÐ\n\n");
   printf("Àá½ÃÈÄ ´Ù½Ã ½ÇÇàÇØÁÖ¼¼¿ä^^;;");
   Sleep(5000);
   exit(1);
  }

hServSock=socket(PF_INET, SOCK_STREAM, 0);
  if(hServSock==INVALID_SOCKET)
  {
   printf("¿¡·¯ ¸Þ¼¼Áö : ¼ÒÄÏ »ý¼º ½ÇÆÐ\n\n");
   printf("Àá½ÃÈÄ ´Ù½Ã ½ÇÇàÇØÁÖ¼¼¿ä^^;;");
   Sleep(5000);
   exit(1);
  }

memset(&servAdrs, 0, sizeof(servAdrs));
  servAdrs.sin_family=AF_INET;
  servAdrs.sin_addr.s_addr=htonl(INADDR_ANY);
  servAdrs.sin_port=htons(atoi("9190"));

if(bind(hServSock, (SOCKADDR*)&servAdrs, sizeof(servAdrs))==SOCKET_ERROR)
  {
   printf("¿¡·¯ ¸Þ¼¼Áö : ÁÖ¼Ò Á¤º¸ ÇÒ´ç ½ÇÆÐ\n\n");
   printf("Àá½ÃÈÄ ´Ù½Ã ½ÇÇàÇØÁÖ¼¼¿ä^^;;");
   Sleep(5000);
   exit(1);
  }

if(listen(hServSock, 5)==SOCKET_ERROR)
  {
   printf("¿¡·¯ ¸Þ¼¼Áö : ¿¬°á ¿äû ´ë±â ½ÇÆÐ\n\n");
   printf("Àá½ÃÈÄ ´Ù½Ã ½ÇÇàÇØÁÖ¼¼¿ä^^;;");
   Sleep(5000);
   exit(1);
  }

clntAdrSize=sizeof(clntAdr);

hClntSock=accept(hServSock, (SOCKADDR*)&clntAdr, &clntAdrSize);
  if(hClntSock==-1)
  {
   printf("¿¡·¯ ¸Þ¼¼Áö : Á¢¼Ó ½ÇÆÐ\n\n");
   printf("Àá½ÃÈÄ ´Ù½Ã ½ÇÇàÇØÁÖ¼¼¿ä^^;;");
   Sleep(5000);
   exit(1);
  }
  else
  {
    ÀÌ ºÎºÐÀº ³ªÁß¿¡ Á¦°¡ ÇÁ·Î±×·¥ ¿ëµµ¿¡ ¸Â°Ô ÄÚµùÇÒ°Å¿¹¿ä...¤¾
  }

closesocket(hSocket);
  closesocket(hServSock);
  closesocket(hClntSock);
  WSACleanup();
  return 0;
}

---------------------------------------------------------------------------------------




¿Ö ¿À·ù°¡ ¶ß´Â°ÅÁҤФÐ


µµ¿ÍÁÖ¼¼¿ä.

  Hit : 7202     Date : 2013/07/13 03:37



    
rainroad87 ¿¡·¯ ³»¿ëÀ» ¿Ã·ÁÁֽøé ÇØ°á¿¡ µµ¿òÀÌ µË´Ï´Ù. 2013/07/15  
rainroad87 »ý°¢ÇØ º¼°Ç 2°¡Áö°¡ Àְڳ׿ä

À©¼ÓÀ» »ç¿ëÇϼÌÀ¸´Ï vs·Î ÄÄÆÄÀÏ ÇϼÌÀ¸¸®¶ó »ý°¢ µÇ´Âµ¥

#include "stdafx.h" ¸¦ Ãß°¡ÇÏÁö ¾ÊÀ¸¼Ìµç°¡

À©¼ÓÀÇ ¶óÀ̺귯¸®¸¦ ¸µÅ©ÇÏÁö ¾ÊÀ¸¼Ìµç°¡

µÑÁß Çϳª·Î ÆǴܵ˴ϴÙ.

ù¹ø° ¹®Á¦ÀÇ °æ¿ì ´Ü¼øÈ÷ #include "stdafx.h"¸¦ ¸Ç À§¿¡ ¼±¾ðÇØÁֽøé ÇØ°áÀÌ °¡´ÉÇÏ°í

µÎ¹ø° ¹®Á¦ÀÏ °æ¿ì ÇØ´ç ÇÁ·ÎÁ§Æ®ÀÇ ¿É¼ÇÀ» º¯°æÇØÁֽõçÁö

¾Æ´Ï¸é ¼Ò½º³»¿¡¼­ #pragma comment(lib, "ws2_32.lib") ¸¦ Ãß°¡Çϸé ÇØ°áµÇ¸®¶ó »ý°¢µË´Ï´Ù.

Á¦°¡ 2°¡Áö¸¦ Àû¿ë½ÃÄѼ­ ÄÄÆÄÀÏÇغ» °á°ú vs2005±âÁØ¿¡¼­´Â ÄÄÆÄÀÏ¿¡·¯¾øÀÌ ½ÇÇàµÇ´Â°ÍÀ» È®ÀÎÇÏ¿´½À´Ï´Ù
2013/07/15  
rainroad87 ±×¸®°í ¼Ò½º ºÎºÐ¿¡¼­ ³í¸®Àû ¿À·ù°¡ Àִµ¥ connect¿Í accept°¡ ½ÖÀÌ µË´Ï´Ù.

ÇѸ¶µð·Î ¼­¹ö¿¡¼­´Â ¼ÒÄÏÀ» »ý¼ºÇÏ°í ¹ÙÀεå·Î ¼³Á¤ÇÑÈÄ ¸®½¼À» È£ÃâÇÏ¿©¾ß¸¸

Ŭ¶óÀ̾ðÆ®ÀÇ ¿¬°á¿äûÀ» accept¸¦ ÅëÇØ ¹Þ¾ÆµéÀ̴µ¥

¼­¹ö°¡ Á¦´ë·Î °¡µ¿µÇÁöµµ ¾ÊÀº »óÅ¿¡¼­ connect¸¦ È£ÃâÇÏ°Ô µÇ¾î Àֳ׿ä.

±×¸®°í listenÀÇ °æ¿ì µ¿±â ÇÔ¼öÀÔ´Ï´Ù. listenÀ» È£ÃâÇÏ°í ±× ¹Ø¿¡ connect¸¦ È£ÃâÇÑ´Ù Çصµ

ÇÁ·Î¼¼½ºÀÇ ½ÇÇà È帧Àº ´©±º°¡°¡ connect¸¦ Çϱâ Àü¿¡´Â listen À» ³Ñ¾î°¥¼ö°¡ ¾ø½À´Ï´Ù.

¼­¹ö ÇÁ·Î±×·¥°ú Ŭ¶óÀ̾ðÆ® ÇÁ·Î±×·¥À» µû·Î ÀÛ¼ºÇϽðųª, ½º·¹µå¸¦ ÅëÇÏ¿© Á¦¾îÇÏ¼Å¾ß ÇÒ°Å °°½À´Ï´Ù.

±×¸®°í ½ÇÇàÁßÀÎ ´Ù¸¥ ÇÁ·Î¼¼½º¿Í ¹«¾ð°¡¸¦ ÇÏ·Á ÇÒ¶§´Â , IPC¸¦ ÁÖ·Î »ç¿ëÇÏ´Ï Çѹø »ç¿ëÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ù.

°Ë»öÀ» À§ÇÑ Å°¿öµå¸¦ ³²±âÀÚ¸é ¸ÞÀϽ½·Ô, ÆÄÀÌÇÁ, ³×ÀÓµå ÆÄÀÌÇÁ µîÀÌ ÀÖ½À´Ï´Ù.

±×·³ Áñ°Å¿î ÇÁ·Î±×·¡¹Ö µÇ½Ã±æ ¹Ù¶ø´Ï´Ù.
2013/07/15  
3126   CÇÁ·Î±×·¡¹Ö ´äº¯Á»..[1]     knagek
09/04 7425
3125   ¹®¼­¾ÏÈ£ Ǫ´Â¹ý??[1]     laclarte
01/16 7424
3124   MFC ¦¸ÂÃ߱⠰ÔÀÓ.     hiÂ𱸾ä
05/10 7412
3123   C¾ð¾î ÇÁ·Î±×·¡¹Ö µµ¿ÍÁÖ¼¼¿ä ¤Ð¤Ð¤Ð[2]     gxcolin
05/17 7371
3122   ¸ð¸£´Â°Ô À־¿©~~~~~c¾ð¾î Ã¥º¸´Ù°¡¿©~~[3]     mintsky1024
12/26 7332
3121   [C¾ð¾î]µÎ ÀÚ¸® ¼ýÀÚ ÀÚ¸´¼ö ¹Ù²Ù±â[1]     tfvarsity
03/19 7327
3120   OllyDBG »ç¿ë¹ý ¾Ë·ÁÁÖ¼¼¿ë~!!![3]     ¾Æ¸£ºô
09/26 7319
3119   [c¾ð¾î] Stack around the variable 'x' was corrupted[1]     yj6393
10/13 7263
3118   C¾ð¾î ÃÖ´ë°ø¾à¼ö ¹®Á¦[2]     so072941594
07/17 7257
3117   visual c++ 6.0 ¾îµð¼­´Ù¿î¹Þ³ª¿ä??[5]     1234321
02/01 7250
  TCP/IP ¼ÒÄÏ ÇÁ·Î±×·¡¹Ö ¿À·ù[3]     whtjdwls151
07/13 7201
3115   c++ ¼ÒÄÏÇÁ·Î±×·¡¹Ö     qaz4564
01/14 7192
3114   °£´ÜÇÑ °ÔÀÓ¼Ò½º C++·Î ¸¸µå´Â °Å..[2]     dmsal154
09/06 7165
3113   visual studio 2010 »ç¿ë¹ýÁ» °¥ÄÑ ÁÖ¼¼¿ä[2]     gkswls123
08/06 7068
3112   ÇÑ ÇÁ·ÎÁ§Æ®¿¡ ¿©·¯ ¼Ò½ºÄڵ带 µÑ¼ö¾ø³ª¿ä?[3]     SeungAh
03/01 7047
3111   ¸®´ª½º c¿Í À©µµ¿ì cÀÇ Â÷ÀÌÁ¡À» ¾Ë·ÁÁÖ¼¼¿ä.,..[1]     Ä«ÀÌÀú9
09/04 7042
3110   ¾È³çÇϼ¼¿ä? ¸ÞƾÀ̶ó´Â °ÔÀÓ¿¡ ¸ÅÅ©·Î ¹®Àǵ帳´Ï´Ù.[6]     ¸ÞƾÇØÄ¿
06/30 7040
3109   [C¾ð¾î] Çì´õÆÄÀÏ, #ifndef, #define Áú¹®ÀÌ¿ä.[2]     ¿µ¿øÇÑ°øºÎ
06/11 6980
3108     [re] ºÒ¹ýÀÎÁö ¾Ë·ÁÁÖ¼¼¿ä     admin
09/05 6938
3107   [C¾ð¾î]ÆÄÀÏÀÔÃâ·Â¿¡¼­ fwrite, fclose Áú¹®ÀÔ´Ï´Ù.[3]     bak405
12/12 6937
[1][2][3][4] 5 [6][7][8][9][10]..[161]

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