'Network' 카테고리의 다른 글

TCP Socket Programming in Python  (0) 2024.01.13
UDP Socket Programming in Python  (0) 2024.01.13

Client

from socket import *

serverName = ""
serverPort = 12000

clientSocket = socket(AF_INET, SOCK_STREAM)

# Client와 Server사이에 TCP연결을 설정한다.
clientSocket.connect((serverName, serverPort))

sentence = input("Input lowercase sentence:")

# 패킷에 목적지 주소를 할당하지 않고,
# 단순히 sentence 문자열 바이트를 TCP연결에게 제공한다.
clientSocket.send(sentence.encode())

# 서버로부터 문자열이 순서대로 쌓인다.
modifiedSentence = clientSocket.recv(1024)

print("From Server: ", modifiedSentence.decode())
clientSocket.close()

 

Server

from socket import *

serverPort = 80
serverSocket = socket(AF_INET, SOCK_STREAM)
serverSocket.bind(("0", serverPort))

# TCP 연결 기다리고 받기 (파라미터 : 큐잉되는 연결의 최대 수)
serverSocket.listen(1)

print("The server is ready to receive")

while True:
    # connectionSocket 소켓을 생성한다.
    connectionSocket, addr = serverSocket.accept()
    sentence = connectionSocket.recv(1024).decode()
    capitalizedSentence = sentence.upper()
    connectionSocket.send(capitalizedSentence.encode())
    connectionSocket.close()

'Network' 카테고리의 다른 글

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

 

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