개발일지/Python
[Python] 소켓통신 (server, client)
chi_chi
2020. 5. 22. 15:37
python 소켓통신
1. socket-server.py
#-*- coding:utf-8 -*-
import socket
# 통신 정보 설정
IP = ''
PORT = 5050
SIZE = 1024
ADDR = (IP, PORT)
# 서버 소켓 설정
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as server_socket:
server_socket.bind(ADDR) # 주소 바인딩
server_socket.listen() # 클라이언트의 요청을 받을 준비
# 무한루프 진입
while True:
client_socket, client_addr = server_socket.accept() # 수신대기, 접속한 클라이언트 정보 (소켓, 주소) 반환
msg = client_socket.recv(SIZE) # 클라이언트가 보낸 메시지 반환
print("[{}] message : {}".format(client_addr,msg)) # 클라이언트가 보낸 메시지 출력
client_socket.sendall("welcome!".encode()) # 클라이언트에게 응답
client_socket.close() # 클라이언트 소켓 종료
2. socket-client.py
#-*- coding:utf-8 -*-
import socket
# 접속 정보 설정
SERVER_IP = '127.0.0.1'
SERVER_PORT = 5050
SIZE = 1024
SERVER_ADDR = (SERVER_IP, SERVER_PORT)
# 클라이언트 소켓 설정
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as client_socket:
client_socket.connect(SERVER_ADDR) # 서버에 접속
client_socket.send('hi'.encode()) # 서버에 메시지 전송
msg = client_socket.recv(SIZE) # 서버로부터 응답받은 메시지 반환
print("resp from server : {}".format(msg)) # 서버로부터 응답받은 메시지 출력
3. 결과
- server (무한루프로 대기)
- client