소켓 프로그래밍 : 입력한 문자열 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
'컴퓨터 공학 > 컴퓨터 네트워크' 카테고리의 다른 글
[Python3/컴퓨터 네트워크] 소켓 프로그래밍 : html request를 보내는 클라이언트와 request 받은 파일을 찾아 웹 브라우저로 보여주는 서버 프로그램 (0) | 2021.04.08 |
---|---|
[Python3/컴퓨터 네트워크] 소켓 프로그래밍 : 간단한 server-client 프로그램 만들기 (0) | 2021.04.08 |
[컴퓨터 네트워크] Chapter3) Computer Network : Transport Layer (0) | 2021.03.29 |
[컴퓨터 네트워크] Application Layer 패러다임 : Peer-to-Peer(P2P) 패러다임 (0) | 2021.03.25 |
[컴퓨터 네트워크] Kademlia DHT 카뎀리아 분산해시테이블 알아보기 (0) | 2021.03.25 |