ÇÁ·Î±×·¡¹Ö

 3206, 11/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 : 7196     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  
3006   ¹°¸®µð½ºÅ© Á¢±ÙÇÏ´Â ÄÚµå ÀÛ¼ºÁßÀä..[2]     kmc8724
08/28 4386
3005   Å°º¸µå ÀÔ·Â ¸í·É¾îÁ» ¾Ë·ÁÁÖ¼¼¿ä[4]     xkdlrjxkdltm
08/27 3432
3004   sleep ¸í·É¾î¿Í Å°º¸µå·Î ÀԷµǴ ¸í·É¾îÁ» ÀÚ¼¼È÷ ¾Ë·ÁÁÖ¼¼¿ä [7]     xkdlrjxkdltm
08/26 3942
3003   ¹öÆÛ ¿À¹öÇ÷οì Çؼ®Á» ¤Ð¤Ð[3]     xkdlrjxkdltm
08/24 4893
3002   ÇÁ·Î±×·¡¹Ö[3]     xkdlrjxkdltm
08/24 3175
3001   0 °ú NULLÀÇ Â÷ÀÌ°¡ ¹¹Áö¿ä?[5]     6¿ù
08/11 5095
3000   C++ °ü·ÃÇؼ­ °£´ÜÇÑ Áú¹®ÀÔ´Ï´Ù.[2]     6¿ù
08/11 3659
2999     [re] C++ °ü·ÃÇؼ­ °£´ÜÇÑ Áú¹®ÀÔ´Ï´Ù.     hch19860906
11/17 2472
2998   c¾ð¾î ÁÖ¼Ò Áú¹®[1]     gozjtmznf1234
07/30 3026
2997   [C¾ð¾î] ÆÄÀÏ ÀÔÃâ·Â Áú¹®[1]     avtree
07/28 4095
2996   C, C++, tcp/ip ¼ÒÄÏ ÇÁ·Î±×·¡¹Ö ´É¼÷ÇϽŠºÐµé, ¾î¶»°Ô °øºÎÇϽóª¿ä?[4]     phj0860
07/27 4692
2995   c¾ð¾î NOT ºñÆ® ¿¬»êÀÚ Áú¹®[5]     benkim
07/19 7752
2994   C++Àε¥ C¾ð¾î·ÎÁ» ¹Ù²ãÁֽǺРÀÖÀ¸½Å°¡¿ä,,, ¤Ð¤Ð[1]     csh30096
07/14 2976
  TCP/IP ¼ÒÄÏ ÇÁ·Î±×·¡¹Ö ¿À·ù[3]     whtjdwls151
07/13 7195
2992   º¸¾ÈÀü¹®°¡ ÂÊ ¾ð¾î ¼ø¼­Á» Àâ¾ÆÁÖ¼¼¿ä.[4]     hjt7942
07/10 4610
2991   ¾È³çÇϼ¼¿ä! Ãʺ¸ÀÔ´Ï´Ù... Çѹø ºÁÁÖ¼Å¿ä ¤Ð[5]     tmdrn9212
06/28 2952
2990   ¸µÅ©¿¡·¯;;[5]     goeun30
06/27 3107
2989   ¹¹°¡ ¿¡·¯ÀΰÇÁö[2]     goeun30
06/26 3242
2988   c¾ð¾î¾î Áú¹®[2]     benkim
06/23 4186
2987   [¾Èµå·ÎÀ̵å] ¹ßÀüÇÏ°í ÀÖ´Â °³¹ßÀÚÀä[1]     youngim0405
06/18 2782
[1].. 11 [12][13][14][15][16][17][18][19][20]..[161]

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