본문 바로가기

컴퓨터 공학/컴퓨터 네트워크

[Python3/컴퓨터 네트워크] 소켓 프로그래밍 : 입력한 문자열 reverse 하는 클라이언트 서버 프로그램

소켓 프로그래밍 : 입력한 문자열 reverse 하는 클라이언트 서버 프로그램 

만들려는 프로그램은 클라이언트가 입력한 문자열의 길이와 거꾸로 reverse된 문자열을 출력하는 클라이언트 서버 프로그램입니다. 코드에 대한 설명은 주석을 참고해주시길 바랍니다. 

성균관대학교 소프트웨어학과 추현승 교수님의 2021-1 네트워크 개론 수업 과제의 일부로 수행한 것입니다. 중복되는 코드 설명은 한번만 작성했습니다.  


Server.py

# import socket python module
from socket import *

# setting server port number as 12000
serverPort = 12000

# create server socket with AF_INET to use IPv4 and SOCK_STREAM to use TCP protocol
serverSocket = socket(AF_INET, SOCK_STREAM)

# bind socket with port number I set
serverSocket.bind(('', serverPort))
serverSocket.listen(1)
print("The server is ready to receive.")

try:
    while True:
        # create connectionSocket for connection and get clinet IP address and port number using accepth method 
        connectionSocket, clientAddress = serverSocket.accept()
        # receive message (byte) from client with 2048 bytes buffer 
        message = connectionSocket.recv(2048)

        # handle message from client 
        reversedMessage = ''
        # save reversed message in variable 'reverseMessage' 
        for i in message.decode():
            reversedMessage = i + reversedMessage
        # send encoded reversedMessage (str) to client 
        connectionSocket.send(reversedMessage.encode())
        connectionSocket.close()
except KeyboardInterrupt:
    print("Press Ctrl-C to terminate while statement")
    pass

Client.py

from socket import *

# setting server name and port number 
serverName = "127.0.0.1"
serverPort = 12000

# create client socket with AF_INET to use IPv4 and SOC_STREAM to use TCP protocol
clientSocket = socket(AF_INET, SOCK_STREAM)
# create connection to server
clientSocket.connect((serverName, serverPort))

# get input from the user and save it in 'message'
message = input("Input:")

# encode message (str to byte) and send using socket.send method
clientSocket.send(message.encode())

# get result from server with buffer sized 2048
reversedMessage = clientSocket.recv(2048)

# print result 
print("The number of charaters: %d" %(len(reversedMessage.decode())))
print('The reversed string(s): "' + reversedMessage.decode() + '"')

clientSocket.close()

 

Result