목차
- python의 socket이란
- socket.socket 함수 인자 및 반환 설명
- tcp 8888번 포트로 서버 열기 예제
- SO_REUSEADDR 플래그 사용하여 서버 열기 예제
- 클라이언트에게 받은 메세지 똑같이 전송하는 예제
1. python의 socket이란
소켓은 네트워크 통신을 위한 프로그램 간의 인터페이스를 제공하는 일종의 통신 엔드포인트입니다.
import socket
2. socket.socket 함수 인자 및 반환 설명
socket.socket
함수는 소켓을 생성하는데 사용되며, 첫 번째 인자로 주소 체계(Address Family)를, 두 번째 인자로 소켓 유형(Socket Type)을 지정합니다.
주소 체계(Address Family): socket.AF_INET
: IPv4 주소 체계를 나타냅니다.socket.AF_INET6
: IPv6 주소 체계를 나타냅니다.
소켓 유형(Socket Type): socket.SOCK_STREAM
: TCP 소켓을 나타냅니다.socket.SOCK_DGRAM
: UDP 소켓을 나타냅니다.
socket.socket
함수의 반환 값은 생성된 소켓 객체입니다. 이 객체를 통해 소켓과 관련된 작업을 수행할 수 있습니다.
import socket
# TCP 소켓 생성
tco_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print(tco_socket)
# UDP 소켓 생성
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
print(udp_socket)
3. tcp 8888번 포트로 서버 열기 예제
TCP 8888번 포트로 서버를 열어 클라이언트의 연결을 기다리는 예제 코드입니다.
import socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('0.0.0.0', 8888))
server_socket.listen(5)
client_socket, client_addr = server_socket.accept()
4. SO_REUSEADDR 플래그 사용하여 서버 열기 예제
SO_REUSEADDR 플래그를 사용하여 서버 소켓을 열어보는 예제 코드입니다.
import socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server_socket.bind(('0.0.0.0', 8888))
server_socket.listen(5)
client_socket, client_addr = server_socket.accept()
5. 클라이언트에게 받은 메세지 똑같이 전송하는 예제
클라이언트로부터 받은 메세지를 그대로 다시 전송하는 예제 코드입니다.
import socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server_socket.bind(('0.0.0.0', 9999))
server_socket.listen(5)
client_socket, client_addr = server_socket.accept()
while True:
data = client_socket.recv(1024)
if not data:
break
print(data)
client_socket.send(data)
반응형