TCP Echo Server/Client
09 Nov 2017 | PythonEcho Server
Python 3.x 에서 동작하는 TCP 기반의 Echo Server/Client 예제 코드입니다.
import socketserver
import sys
class TcpEchoServerHandler(socketserver.BaseRequestHandler):
def handle(self):
print('Client is connected : {0}'.format(self.client_address[0]))
sock = self.request
buffer = sock.recv(1024)
received_message = str(buffer, encoding='utf-8')
print('Received : {0}'.format(received_message))
sock.send(buffer)
sock.close()
if __name__ == '__main__':
if len(sys.argv) < 2:
print('{0} [Bind IP]'.format(sys.argv[0]))
sys.exit()
bindIP = sys.argv[1]
bindPort = 10070
server = socketserver.TCPServer((bindIP, bindPort), TcpEchoServerHandler)
print("Start Echo-Server")
server.serve_forever()
Echo Client
import socket
import sys
serverPort = 10070
if __name__ == '__main__':
if len(sys.argv) < 4:
print('{0} [BindIP] [Server IP] [Message]'.format(sys.argv[0]))
sys.exit()
bindIP = sys.argv[1]
serverIP = sys.argv[2]
message = sys.argv[3]
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind((bindIP, 0))
try:
sock.connect((serverIP, serverPort))
buffer = bytes(message, encoding='utf-8')
sock.send(buffer)
print('Sended message : {0}'.format(message))
buffer = sock.recv(1024)
received_message = str(buffer, encoding='utf-8')
print('Received message : {0}'.format(received_message))
finally:
sock.close()