ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù. ¿Ö ?
Àͼ÷ÇÑ C/C++ ´ë½Å Python ¾ð¾î¸¦ ¼±ÅÃÇÑ ÀÌÀ¯°¡ ±Ã±ÝÇÒ ¼ö ÀÖ°Ú½À´Ï´Ù. »ç½Ç ±×·¸±âµµ ÇÕ´Ï´Ù. C/C++·Î °£´ÜÇϰÔ? ±¸ÇöÇÒ ¼ö Àִµ¥, ±»ÀÌ PythonÀ̶ó´Â »õ·Î¿î ¾ð¾î¸¦ ÀÌ¿ëÇØ¼ ±¸ÇöÇÏ·Á´ÂÁö ¸»ÀÔ´Ï´Ù.
Áö±Ý±îÁö Á¦°¡ ¸Ã¾Ò´ø ¾÷¹«µéÀÇ »ó´ç¼ö°¡ ½Ã½ºÅÛ/³×Æ®¿öÅ© ±âŸ ·Î±×¸¦ ¼öÁýÇØ¼ ºÐ¼®ÇÏ´Â ÇÁ·Î±×·¥ÀÇ °³¹ßÀ̾ú½À´Ï´Ù. º¸¾È°üÁ¦½Ã½ºÅÛ, IDC ½Ã½ºÅÛ/³×Æ®¿öÅ© °ü¸® ÇÁ·Î±×·¥, QA, QOSȰµ¿ µîµî. ÀÌ·¯ÇÑ ÇÁ·Î±×·¥µéÀº ´Ù¾çÇÑ ¿î¿µÃ¼Á¦·Î ÀÌ·ç¾îÁø ºÐ»êȯ°æ¿¡¼ ÀÛµ¿ÇØ¾ß Çϴ Ư¡À» °¡Áö°í ÀÖ½À´Ï´Ù. À̸¦Å×¸é ºÐ»ê ¸ð´ÏÅ͸µ ½Ã½ºÅÛ °°Àº °ÍÀÇ ±¸ÃàÀä. C¿Í C++·Î ¸¸µé °æ¿ì ¸ñÇ¥ ¿î¿µÃ¼Á¦¿¡´ëÇØ¼ ÄÄÆÄÀÏ µÇ¾ß ÇѴٴ Ư¼ºÀÌ ¹®Á¦¿´½À´Ï´Ù. ¹èÆ÷°¡ ¾î·Æ´Ù´Â °ÅÁÒ.
±×·¡¼ Python ¾ð¾î¸¦ »ç¿ëÇϱâ·Î Çß½À´Ï´Ù. ¿î¿µÃ¼Á¦¿¡ °ü°è¾øÀÌ ½ÇÇàµÈ´Ù´Â Ư¡ÀÌ ¸¶À½¿¡ µç°ÅÁÒ. Python & BSD Socket
´Ù¸¥ °í±Þ ¾ð¾îµéÀÌ ±×·¸µíÀÌ Pythonµµ ¾Æ¸¶ °í¼öÁØÀÇ ³×Æ®¿öÅ© ¸ðµâÀ» °¡Áö°í ÀÖÀ»°Å¶ó°í »ý°¢ÀÌ µË´Ï´Ù¸¸... Low LevelÀÇ ³×Æ®¿öÅ© ÀÎÅÍÆäÀ̽º¿¡ ´ëÇØ¼ ¾Ë¾Æº¸±â·Î Çß½À´Ï´Ù. BSD Socket ÀÎÅÍÆäÀ̽º¸¦ Áö¿øÇÏ´ÂÁö ¾Ë¾Æº¸°Ú´Ù´Â °ÅÁÒ. ´ç¿¬È÷ BSD Socket ÀÎÅÍÆäÀ̽º¸¦ Áö¿øÇϰí ÀÖ´õ±º¿ä.
Python BSD Socket ÀÎÅÍÆäÀ̽º¸¦ Á¤¸®ÇÏÁö ¾Ê°Ú½À´Ï´Ù. BSD SocketÀ» ¾Ë°í ÀÖ´Ù¸é, ±×´ë·Î »ç¿ëÇÏ¸é µÇ´Ï±î¿ä. echo server
±×³É °£´ÜÇÏ°Ô Thread±â¹ÝÀÇ echo server¸¦ Çϳª ¸¸µé¾î º¸±â·Î Çß½À´Ï´Ù. ÀÌ ¹®¼´Â pythonÀ» °øºÎÇÏ¸é¼ ÀÛ¼ºÇÑ °Ì´Ï´Ù. ±×·¯´Ï °í±Þ½º·± Python Äڵ带 ±â´ëÇÏÁö´Â ¸¶½Ã±â ¹Ù¶ø´Ï´Ù.
¼ÒÄÏ Å¬·¡½º¿Í ¾²·¹µå Ŭ·¡½º¸¦ Á¤ÀÇÇß½À´Ï´Ù. ÆÄÀÏÀ̸§Àº ydsocket.pyÀÔ´Ï´Ù.
# -*- coding: utf-8 -*- import socket import sys import os import time from threading import Thread BACKLOG = 5 # Socket Ŭ·¡½º class YDSocket: def __init__(self): listensock = 0; # Bind ÇÔ¼ö def Bind(self,port): # socketÀÌ À̸§À¸·Î ºÙ´Â´Ù´Â °ÍÀ» Á¦¿ÜÇϰí´Â # BSD Socket ÇÔ¼ö¿Í µ¿ÀÏÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. self.listensock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.listensock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1); self.listensock.bind(('127.0.0.1', port)) self.listensock.listen(BACKLOG) # Accept ÇÔ¼ö def Accept(self): conn, addr = self.listensock.accept(); print "Accept OK : ", addr return conn # ½º·¹µå Ŭ·¡½º class JobThread(Thread): def __init__ (self, conn): Thread.__init__(self) self.conn = conn self.method = {"quit": self.func_quit} def run(self): while 1: read = self.conn.recv(1024) if read == '': print "Client Close" self.conn.close(); return else : stripstr = read.rstrip('\r\n') if stripstr in self.method: rtv = self.method.get(stripstr)() if rtv == 0: return else : self.conn.send(read) # À¯Àú°¡ quit¸¦ ÀÔ·ÂÇßÀ» °æ¿ì Á¾·áÇÑ´Ù. def func_quit(self): print "Client Close" self.conn.close(); return 0; |
|
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|