파이썬을 이용한 네트워크 프로그래밍



 파이썬을 이용한 서버 개발                                                                              


파이썬을 이용해서 네트워크 프로그래밍을 예제를 설명 하도록 하겠다.

네트워크 개념이 없으신 분은 여기를 클릭하여 먼저 이해를 하는것이 좋습니다.

파이썬 서버 개발 예제부터 살펴 보겠다.


#! /usr/bin/python

# -*- coding: utf-8 -*-


from socket import *

from select import *

import sys

from time import ctime


HOST = ''

PORT = 10000

BUFSIZE = 1024

ADDR = (HOST,PORT)


serverSocket = socket(AF_INET, SOCK_STREAM)#1.소켓을 생성한다.


serverSocket.bind(ADDR) #2.소켓 주소 정보 할당

print('bind')

serverSocket.listen(100) #3.연결 수신 대기 상태

print('listen')

clientSocket, addr_info = serverSocket.accept() #4.연결 수락

print('accept')

clientSocket.close() #소켓 종료

serverSocket.close()

print('close')


1. 시작은 소켓을 생성하는 것으로 부터 시작 한다. serverSocket은 이제 socket 클래스의 인스턴스이다.

2. bind 함수를 호출 하여 주소 정보인 ADDR을 할당 한다.

3. listen 함수를 호출하여 연결 수신 대기 상태를 만든다.

4. 클라이언트가 연결을 하면 accept 함수를 이용하여 연결을 수락한다.

   이때 연결을 수락하면서 연결 클라이언트와 송수신을 하는 소켓(clientSocket)을 하나 리턴 받는다.

5. close함수를 호출하여 바로 종료 시킨다.




파이썬을 이용한 클라이언트 개발


파이썬 클라이언트 개발 예제부터 살펴 보겠다.

참고로 클라이언트 프로그램을 다 만들고 실행하기 전에는 서버 프로그램을 먼저 실행 시킵니다. 


#! /usr/bin/python

# -*- coding: utf-8 -*-


from socket import *

from select import *

import sys

from time import ctime


HOST = '127.0.0.1'

PORT = 10000

BUFSIZE = 1024

ADDR = (HOST,PORT)


clientSocket = socket(AF_INET, SOCK_STREAM)#1 서버에 접속하기 위한 소켓을 생성한다.


try:

        clientSocket.connect(ADDR)#2. 서버에 접속을 시도한다.

except  Exception as e:

        print('%s:%s'%ADDR)

        sys.exit()

print('connect is success')


1. 시작은 소켓을 생성하는 것으로 부터 시작 한다. clientSocket은 이제 socket 클래스의 인스턴스이다.

2. connect 함수를 호출하여 서버 접속을 시도한다.


파이썬으로 네트워크 프로그래밍을 할 때는 네트워크 프로그래밍 개념과 더불어 파이썬에서 제공하는 socket 클래스를 이해하면

어렵지 않게 프로그램을 만들수 있습니다.


반응형

+ Recent posts