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)

 

'Network' 카테고리의 다른 글

TCP 연결 과정  (0) 2024.01.15
TCP Socket Programming in Python  (0) 2024.01.13

+ Recent posts