UDP 서버 및 클라이언트 프로그램 인스턴스

파이썬 코어 프로그래밍
UDP는 TCP와 다릅니다: 연결이 없기 때문에 모든 서버에listen이 필요하지 않습니다(이브는 맞은편 아담의 외침을 듣지 않습니다)
그래서 accept () 로 클라이언트를 되돌려 부하에게 연결하지 않습니다.

UDP 서버 만들기

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

from socket import *
from time import ctime

HOST = 'localhost'
PORT = 20000
ADDR = (HOST, PORT)
BUFSIZ = 1024

udpSerSock = socket(AF_INET, SOCK_DGRAM)
udpSerSock.bind(ADDR)

while True:
    data, addr = udpSerSock.recvfrom(BUFSIZ)
    if not data:
        break 
    udpSerSock.sendto("[%s]%s" % (ctime(), data), addr)      # , , sendto() addr , addr

UDP 클라이언트 만들기

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

from socket import *

HOST = 'localhost'
PORT = 20000
ADDR = (HOST, PORT)
BUFSIZ = 1024

udpCliSock = socket(AF_INET, SOCK_DGRAM)

while True:
    data = raw_input('>>>')
    if not data:
        break
    udpCliSock.sendto(data, ADDR)   # , data ADDR 
    data = udpCliSock.recvfrom(BUFSIZ)
    if not data:
        break
    print data
udpCliSock.close()

참고 사항:
  • UDP는 연결이 없으므로 nolisten (), accept () 를 사용할 수 없습니다
  • recvfrom(), sendto(data, addr). sendto () 의 두 번째 인자는addr입니다
  • 좋은 웹페이지 즐겨찾기