블로그

UDP Socket Programming in Python

게시 2분

Client

# 소켓 모듈을 불러온다. from socket import * # 목적지 주소(IP, Port)를 설정한다. # serverName을 이용해서 IP를 얻기위해 DNS 검색이 자동으로 수행된다. serverName = "" serverPort = 11111 # clientSocket 클라이언트의 소켓을 생성한다. # AF_INET : 주소군(family), 하부 네트워크가 IPv4를 사용하고 있음을 나타낸다. # SOCK_DGRAM : UDP 소켓임을 의미한다. clientSocket = socket(AF_INET, SOCK_DGRAM) # 사용자가 message를 입력한다. message = input('Input lowercase sentence:') # 목적지 주소 (serverName, serverPort)를 패킷(message.encode())에 붙여서 clientSocket으로 보낸다. # 출발지 주소도 패킷 붙지만, 이는 코드를 통해 명시적으로 붙지 않고 하부 운영체제가 자동으로 수행된다. clientSocket.sendto(message.encode(), (serverName, serverPort)) # 서버로부터의 수신을 기다린다. # 인터넷으로부터 패킷이 소켓에 도착하면 아래 변수들에 할당된다. # modifiedMessage : 패킷 데이터가 할당된다. # serverAddress : 패킷의 출발지 주소(서버 주소)가 할당된다. 이미 알고있는 정보기때문에 필요하지는 않지만, 파이썬에서 제공해준다. # 2048 : 해당 크기의 버퍼를 받아들인다. modifiedMessage, serverAddress = clientSocket.recvfrom(2048) # 도착한 메시지가 출려된다. print(modifiedMessage.decode()) # 소켓을 닫는다. clientSocket.close() # 프로세스가 종료된다,

Server

from socket import * serverPort = 11111 serverSocket = socket(AF_INET, SOCK_DGRAM) # 소켓에 주소를 할당한다. serverSocket.bind(("", serverPort)) print("The server is ready to receive") while True: message, clientAddress = serverSocket.recvfrom(2048) modifiedMessage = message.decode().upper() serverSocket.sendto(modifiedMessage.encode(), clientAddress)

댓글

댓글을 남기면 닉네임(또는 GitHub 계정 정보)이 저장됩니다. 개인정보처리방침

GitHub