이번엔 간단히 소켓 프로그래밍을 만들어 보겠습니다.

방법은 다른 OS들의 C라이브러리를 사용하는 것과 크게 다르지 않고 설정하는 부분도 대부분 동일한 형태입니다.

기본적으로 서버는 응답을 기다리고 응답이 오면 다시 해당 응답을 클라이언트로 전달하는 ECHO서버 예제입니다.

일단 Server쪽 먼저 만들어 보겠습니다. (소스는 python doc에서 인용하였습니다.)

# Echo server program
import socket

HOST = ''                   # Symbolic name meaning all available interfaces
PORT = 50007              # Arbitrary non-privileged port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
conn, addr = s.accept()
print 'Connected by', addr
while 1:
    data = conn.recv(1024)
    if not data: break
    conn.sendall(data)
conn.close()

크게 어렵지 않은 부분이라고 생각되어 집니다. 사실 몰라도 되죠 그냥 저렇게 써 주면 됩니다.

나중에 시간이 되면 라인 단위로 설명을 드리도록 하겠습니다.

다음 부분은 클라이언트 부분입니다.

# Echo client program
import socket

HOST = 'IP '                # The remote host
PORT = 50007              # The same port as used by the server
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
s.sendall('Hello, world')
data = s.recv(1024)
s.close()
print 'Received', repr(data)

위의 IP부분에 서버의 IP를 입력해주면 바로 동작이 되는 것을 확인할 수 있습니다.

이상입니다. 결과는 소스를 바로 가져 가시면 확인이 가능합니다. 제가 확인을 해보았습니다.

+ Recent posts