ÇÁ·Î±×·¡¹Ö

 3206, 5/161 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   qaz4564
   c++ ¼ÒÄÏÇÁ·Î±×·¡¹Ö

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


±ÍÂúÀ¸½Ã´õ¶óµµ µµ¿ÍÁÖ¼¼¿ä ¤Ì¤Ì ¸îÀÏÀÌ °É·È½À´Ï´Ù.

ÇÁ·ÎÁ§Æ® ¼Ó¼º¿¡ [¸µÄ¿]>[ÀÔ·Â]>[Ãß°¡Á¾¼Ó¼º]>ws2_32.lib¸¦ ÇÏ°í ÄÄÆÄÀÏÀ» ÇÏ¿´½À´Ï´Ù.
server ¼Ò½º
#include <winsock2.h>
#include <stdlib.h>
#include <stdio.h>
#include <Windows.h>
#include <process.h>
#include <string.h>
#define BUFSIZE 512
HANDLE hthread;  //  ¾²·¹µå¸¦ Á¦¾î ÇϱâÀ§ÇÑ ÇÚµé
SOCKET client_sock;  // Åë½Å¿ë ¼ÒÄÏ
static unsigned WINAPI re()// ¸Þ¼¼Áö¸¦ º¸³»±â À§ÇÑ ÇÔ¼ö
{
  SOCKADDR_IN clientaddr;//Ŭ¶óÀ̾ðÆ®ÁÖ¼Ò
  int addrlen;
  char buf[BUFSIZE+1];
  int retval;
  addrlen = sizeof(clientaddr);
  SOCKET listen_sock = socket(AF_INET, SOCK_STREAM, 0);
  accept(listen_sock,(SOCKADDR *) &clientaddr, &addrlen);

//  µ¥ÀÌÅÍ ¹Þ±â
  do{
   ZeroMemory(buf, sizeof(buf));
   retval = recv(client_sock, buf, BUFSIZE, 0);
   if(retval == 0)
   return 0;
  
   // ¹ÞÀº µ¥ÀÌÅÍ Ãâ·Â
   if(retval != -1){
   buf[retval] = '\0';
   printf("\n[TCP/%s:%d]%d¹Þ¾Ñ½À´Ï´Ù %s\n[º¸³¾ µ¥ÀÌÅÍ]",inet_ntoa(clientaddr.sin_addr),ntohs(clientaddr.sin_port),retval, buf);
   }
  }while(1);
}
int main(int argc, char* argv[])
{
  int retval;
  // À©¼Ó ÃʱâÈ­
  WSADATA wsa;
  if(WSAStartup(MAKEWORD(2,2), &wsa) != 0)
  return -1;

  // socket(tcp/ip¸¦ ÀÌ¿ë(afÁÖ¼Òü°è),tcp¹æ½ÄÀÇ ½ºÆ®¸², ƯÁ¤ÇÁ·ÎÅäÄݼ³Á¤Àμö ´ëºÎºÐ0ÀÌ´Ù)
  SOCKET listen_sock = socket(AF_INET, SOCK_STREAM, 0);// ¼ÒÄϸ¸µé±â

  // bind() bind¶õ ¼­¹öÀÇ ¾ÆÀÌÇÇ,Æ÷Æ® ¸¦ ºÎ¿©Çϴ°Í
  SOCKADDR_IN serveraddr;
  ZeroMemory(&serveraddr, sizeof(serveraddr));
  serveraddr.sin_family = AF_INET;//µµ¸ÅÀÎ
  serveraddr.sin_port = htons(9000);
  serveraddr.sin_addr.s_addr = htonl(INADDR_ANY); //IPv4¿¡¼­´Â INADDR_ANY(¿ÍÀϵåÄ«µå) ÀÌ°í ÀÌ°ÍÀ¸·Î ¾ÆÀÌÇǸ¦ ¹Þ¾Æ¿Â´Ù
  bind(listen_sock, (SOCKADDR *)&serveraddr,sizeof(serveraddr));  
//    ¼ÒÄÏ     ÁÖ¼Ò   Å©±â
  // listen()
  listen(listen_sock, SOMAXCONN);//Ŭ¶óÀ̾ðÆ® ´ë±â »óŸ¦ ¸¸µë ,
         //µÎ¹ø¤Š ¸Å°³º¯¼ö °¡  ¹é·Î±× ¶ó´Â°ÍÀÌ°í ´ë±â°¡´ÉÇÑ ÃÖ´ë ¿¬°á°¹¼ö(³ÑÀ¸¸é ¿äû°ÅÀý)

  // µ¥ÀÌÅÍ Åë½Å¿¡ »ç¿ëÇÒ º¯¼ö
  SOCKADDR_IN clientaddr;//Ŭ¶óÀ̾ðÆ®ÁÖ¼Ò
  int addrlen;
  char buf[BUFSIZE+1];
  while(1){
   //accept()
  addrlen = sizeof(clientaddr);
  client_sock = accept(listen_sock,(SOCKADDR *) &clientaddr, &addrlen);//Ŭ¸®¾Æ¾ðÅÍ¿¡ ´ëÇÑ Á¤º¸¸¦ Ŭ¶óÀ̾ðÆ®¼ÒÄÏ¿¡ ³ÊÀ½
                   //¹Ýȯ°ª : ¿¬°áµÈ¼ÒÄÏ, Ŭ¶óÀ̾ðÆ®ÀÇ ÁÖ¼Ò, ±×°ÍÀÇ ±æÀÌ
   printf("\n[TCP ¼­¹ö] Ŭ¶óÀ̾ðÆ® Á¢¼Ó: IP ÁÖ¼Ò=%s, Æ÷Æ® ¹øÈ£=%d\n",inet_ntoa(clientaddr.sin_addr),ntohs(clientaddr.sin_port));
    unsigned id;
  // ¾²·¹µå ¸¸µé°í ¹Þ´Â ÇÔ¼ö¸¦ ¾²·¹µå¿¡¼­ ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù
    //create ÇÔ¼öµµ ÀÖÁö¸¸ c++/c ¿¡¼­´Â µ¿ÀÛÀÌ Àß µÇÁö ¾Ê´Â´Ù.
    hthread = (HANDLE)_beginthreadex(NULL,0,(unsigned int (__stdcall*)(void*))re,NULL,0,&id);
  
    if(hthread ==0)
     puts("_beginthreadex error");
  
   // Ŭ¶óÀ̾ðÆ®¿Í µ¥ÀÌÅÍ Åë½Å
   while(1){
      // µ¥ÀÌÅÍ Åë½Å¿¡ »ç¿ëÇÒ º¯¼ö
   int len;
   // ¼­¹ö¿Í µ¥ÀÌÅÍ Åë½Å
   // µ¥ÀÌÅÍ ÀÔ·Â
   ZeroMemory(buf, sizeof(buf));// buf¸¦ ºñ¿öÁØ´Ù ÃʱâÈ­
   printf("\n[º¸³¾ µ¥ÀÌÅÍ]");
   if(fgets(buf, BUFSIZE+1, stdin) == NULL)
   break;
   // '\n' ¹®ÀÚ Á¦°Å
   len = strlen(buf);
   if(buf[len-1] == '\n')
   buf[len-1] = '\0';
   if(strlen(buf) == 0)
   break;
  
   retval = send(client_sock, buf, strlen(buf), 0); //º¸³»´Â ÇÔ¼ö ,¹Ýȯ°ªÀº ¹ÙÀÌÆ® ¼ö
  
   printf("[TCP ¼­¹ö] %d¹ÙÀÌÆ®¸¦ º¸³Â½À´Ï´Ù.\n", retval);
   }
  closesocket(client_sock);
  printf("[TCP ¼­¹ö] Ŭ¶óÀ̾ðÆ® Á¾·á: IP ÁÖ¼Ò=%s, Æ÷Æ® ¹øÈ£=%d\n",inet_ntoa(clientaddr.sin_addr),ntohs(clientaddr.sin_port));
  }
  closesocket(listen_sock);
  // À©¼Ó Á¾·á
  WSACleanup();
  return 0;
}



//////////////////////////////////////////////////////////////

client ¼Ò½º
#include <winsock2.h>
#include <stdlib.h>
#include <stdio.h>
#define BUFSIZE 512
int main(int argc, char* argv[])
{
int retval;
int ret;
// À©¼Ó ÃʱâÈ­, ¼ÒĹ ÃʱâÈ­
WSADATA wsa;
if(WSAStartup(MAKEWORD(2,2), &wsa) != 0)
return -1;
// socket()
SOCKET sock = socket(AF_INET, SOCK_STREAM, 0);// ¼ÒÄϸ¸µé±â
// connect() ¼­¹ö·Î ¿¬°á
SOCKADDR_IN serveraddr;
serveraddr.sin_family = AF_INET; // TCP/IP¸¦ »ç¿ë
serveraddr.sin_port = htons(9000);
serveraddr.sin_addr.s_addr = inet_addr("127.0.0.1");//¼­¹öÀÇ IP ÁÖ¼Ò
retval = connect(sock, (SOCKADDR *)&serveraddr,sizeof(serveraddr));


SOCKADDR_IN clientaddr;//Ŭ¶óÀ̾ðÆ®ÁÖ¼Ò
  int addrlen;
// µ¥ÀÌÅÍ Åë½Å¿¡ »ç¿ëÇÒ º¯¼ö
char buf[BUFSIZE+1];
int len;
// ¼­¹ö¿Í µ¥ÀÌÅÍ Åë½Å
while(1){
  addrlen = sizeof(clientaddr);
  SOCKET n_sok;
  
// µ¥ÀÌÅÍ ÀÔ·Â
ZeroMemory(buf, sizeof(buf));
printf("\n[º¸³¾ µ¥ÀÌÅÍ]");
if(fgets(buf, BUFSIZE+1, stdin) == NULL)
  break;
// '\n' ¹®ÀÚ Á¦°Å
len = strlen(buf);
if(buf[len-1] == '\n')
buf[len-1] = '\0';
if(strlen(buf) == 0)
  break;
// µ¥ÀÌÅÍ º¸³»±â
retval = send(n_sok, buf, strlen(buf), 0);
printf("[TCP Ŭ¶óÀ̾ðÆ®] %d¹ÙÀÌÆ®¸¦ º¸³Â½À´Ï´Ù.\n", retval);
// µ¥ÀÌÅÍ ¹Þ±â
ZeroMemory(buf, sizeof(buf));
ret = recv(n_sok, buf, BUFSIZE, 0);

if(ret == 0)
break;
// ¹ÞÀº µ¥ÀÌÅÍ Ãâ·Â
buf[ret] = '\0';
printf("[TCP Ŭ¶óÀ̾ðÆ®] %d¹ÙÀÌÆ®¸¦ ¹Þ¾Ò½À´Ï´Ù.\n", ret);
printf("[¹ÞÀº µ¥ÀÌÅÍ] %s\n", buf);
}
  // closesocket()
closesocket(sock);
// À©¼Ó Á¾·á
WSACleanup();
return 0;
}


¼­·Î ¹®ÀÚ¿­À» ÁÖ°í ¹Þ´Â Åë½Å ÇÁ·Î±×·¥ ÀÔ´Ï´Ù.
µ¥ÀÌÅ͸¦ º¸³¾ ¶§´Â ¼­¹öµç Ŭ¶óÀ̾ðÆ®µç ¸ÕÀú °¡´ÉÇÏ°í, Ŭ¶óÀ̾ðÆ®´Â µ¥ÀÌÅ͸¦ º¸³»¾ß ¹Þ±â°¡ °¡´É ÇÕ´Ï´Ù.
¹®Á¦´Â ÇÑ ÄÄÇ»ÅÍ¿¡¼­´Â Àß µÇÁö¸¸ ¼­·Î ´Ù¸¥ ÄÄÇ»ÅÍ¿¡¼­ Ŭ¶óÀ̾ðÆ®¿¡ ÀÖ´Â IPÁÖ¼Ò¸¦ ¼­¹ö ÄÄÇ»ÅÍ¿¡ ¸Â°Ô º¯°æ ÈÄ  ¼­¹ö¿Í Ŭ¶óÀ̾ðÆ®¸¦ °¢°¢ ½ÇÇà ½ÃÅ°¸é µ¿ÀÛÇÏÁö ¾Ê½À´Ï´Ù.
¹«¾ùÀ̹®Á¦Àϱî¿ä µµ¿ÍÁÖ¼¼¿ä

  Hit : 7176     Date : 2015/01/14 05:25



    
3126   Çб³ ÇÁ·ÎÁ§Æ® Áú¹®ÀÔ´Ï´Ù.     rlagusgh125
03/29 2904
3125   Àç±ÍÈ£Ãâ ¼Ò½ºÄÚµå ºÐ¼®.....     h@cking2013
03/24 3389
3124   ¾È³çÇϼ¼¿ä c++¹è¿ì´Â ÇлýÀÔ´Ï´Ù[3]     axio93
03/19 3829
3123   c¾ð¾î »ðÀÔ Á¤·Ä Áß °£Á¢Á¤·Ä Áú¹®µå·Á¿ä[1]     ljh7009
03/19 4242
3122   ÇÁ·Î±×·¡¹Ö ÀÔ¹®ÀÚ °øºÎ ¹æÇâ..[1]     mwm0202
03/19 3058
3121   ÆÄÀ̽ã Ã¥ Ãßõ ºÎŹµå¸³´Ï´Ù[1]     dkflvkdnj
03/16 3645
3120   c¾ð¾î Ãʺ¸ÀÚÀε¥ ÄÄÆÄÀÏ·¯ âÀÇ ¸ð¸£´Â À̸§µé ¼³¸íÁ»¿ä[3]     songjo12
03/10 3342
3119   ¸Þ¸ð¸® µ¿ÀÛ °úÁ¤ Áß segment¿¡ ´ëÇؼ­..     hallohackers
02/26 3131
3118   µµ¼­°ü¿¡ ¾î¼Àºí¸® ±âÃÊ¿¡ °üÇؼ­ Áú¹®ÀÖ½À´Ï´Ù.[4]     ghgk97
02/11 3356
3117   µµ´ëü.....[3]     h@cking2013
02/10 2894
3116   c¾ð¾î Æ÷ÀÎÅÍ Áú¹®[5]     moomyung93
01/30 3002
3115     [re] c¾ð¾î Æ÷ÀÎÅÍ Áú¹®[1]     ±èº´±Ç
01/30 3906
3114   C¾ð¾î ÀÀ¿ë´É·ÂÀ» Å°¿ì±â À§ÇÑ ¹æ¹ýÀ» °¡¸£ÃÄÁֽñ⠹ٶø´Ï´Ù.[2]     OzShock
01/23 3153
3113   ¿À·ùÄÚµåÁú¹®ÀÌ¿ä[1]     dmsdls00
01/22 3601
3112   ÀÌ ¿À·ù ±Ã±ÝÇÑ°Í     dmsdls00
01/20 3420
3111   Lockbit °ü·ÃµÈ Áú¹®ÀÔ´Ï´Ù.     jkendud
01/19 3673
  c++ ¼ÒÄÏÇÁ·Î±×·¡¹Ö     qaz4564
01/14 7175
3109   ÇÁ·Î±×·¡¹Ö ¾ð¾î °ü·Ã Áú¹®[2]     niteofhunter
12/23 2997
3108   ÇöÁ¦ ³×Æ®¿öÅ© »óȲÀε¥ ¼­·Î Á¢¼ÓÀ̾ȵǿä,,     alsrbdu
12/17 3311
3107   À¥ ÇÁ·Î±×·¡¹ÖÀÌ ¹«¾ùÀΰ¡¿ä? [3]     kimhacker123
12/10 3820
[1][2][3][4] 5 [6][7][8][9][10]..[161]

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