소켓을 모르고서는 아니 되겠길래 공부를 하다가 하나 만들어 보았습니다
( 사실 여기저기서 주워 모았음.. ^.^)

먼저 TCP소켓을 알아야 UDP및 RAW소켓을 이용한 플밍이 가능하리하는 생각에 ...

짐작하셨겠지만 전 왕초보입니다.. 그래서 공부해야될 것이 너무 많이 있네요...

타임서버와 클라이언트를 만들어 보았습니다..
부족한것이 많은 거지만 소켓공부하려고 만든거니까 잡다한 건 뺐습니다..

최소한의 동작만.. 나중에 더 추가하려고 합니다.
지금은 아는게 별로 없어서리...

#----------------------------------------------------------
# 타임서버 v0.1
#
#----------------------------------------------------------
import time
from socket import *

PORT    = 13
HOST    = ''                                            # localhost를 의미

def timeserver_calculation():
    return time.asctime( time.gmtime() )

def daytimeserver(host=HOST, port=PORT, backlog=5):
    serversock = socket(AF_INET, SOCK_STREAM)
    serversock.bind( (host,port) )                      # 튜플이라!
    serversock.listen(backlog)
    print 'Listening on Port %s (%s, %s)' % (port, 'host', backlog)
    while 1:
        conn, addr = serversock.accept()
        daytime = timeserver_calculation()
        print 'Connected for %s Client: %s, Port: %s' % (daytime, addr, port)
        conn.send(daytime)
        conn.close()

if __name__ == '__main__':
    daytimeserver()


혹시나 했는데 다른 타임서버와도 연결이 되네요..
이런.... 사실 놀랬음..
한번 해보세요.. 신기해요..


#----------------------------------------------------------
# 타임클라이언트 v0.1
#
#----------------------------------------------------------
import sys
from socket import *

BUFSIZE = 1024
HOST    = 'localhost'
#HOST   = '203.254.163.74'                              # time.kriss.re.kr
PORT    = 13                                            # daytime

def daytimeclient(host=HOST, port=PORT):
    clientsock = socket(AF_INET, SOCK_STREAM)
    try:
        clientsock.connect( (host, port) )
    except:
        print 'connect: Connection retused'
        return
    svr_time = clientsock.recv(BUFSIZE)
    print svr_time
    clientsock.close()

if __name__ == '__main__':
    daytimeclient()
将把此主题..