English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Python의 소켓 프로그래밍

양방향 통신 채널에서 소켓은 두 개의 엔드포인트입니다. 소켓은 같은 기계나 다른 대륙의 프로세스 간에 통신할 수 있습니다.

소켓은 다양한 유형의 통로 TCP, UDP로 구현됩니다.

Socket을 생성하기 위해 socket 모듈과 socket.socket() 함수가 필요합니다.

문법

my_socket = socket.socket(socket_family, socket_type, protocol=0)

서버 소켓의 다른 메서드

my_socket.bind()

이 메서드는 주소(호스트 이름, 포트 번호 쌍)를 소켓에 바인딩합니다.

my_socket.listen()

이 메서드는 TCP 리스너를 설정하고 시작합니다.

my_socket.accept()

이 메서드는 TCP 클라이언트 연결을 받아들이고 연결 도착을 기다립니다(阻塞).

클라이언트 소켓의 다른 메서드

my_socket.connect()

이 메서드는 TCP 서버 연결을 적극적으로 시작합니다.

일반 소켓 메서드

my_socket.recv()

이 메서드는 TCP 메시지를 수신합니다.

my_socket.send()

이 메서드는 TCP 메시지를 전송합니다.

my_socket.recvfrom()

이 메서드는 UDP 메시지를 수신합니다.

my_socket.sendto()

이 메서드는 UDP 메시지를 전송합니다.

my_socket.close()

이 메서드는 소켓을 닫습니다.

my_socket.gethostname()

이 메서드는 호스트 이름을 반환합니다.

서버 소켓

예제

import socket
my_socket = socket.socket()      # Create a socket object
my_host = socket.gethostname()
my_port = 00000# Store a port for your service.
my_socket.bind((my_host, my_port))
my_socket.listen(5)      # Now wait for client connection.
while True:
   cl, myaddr = my_socket.accept()     # Establish connection with client.
   print ('Got connection from', myaddr)
   cl.send('Thank you for connecting')
   cl.close()     # Close the connection

클라이언트 소켓

예제

import socket      # Import socket module
my_socket = socket.socket()      # Create a socket object
my_host = socket.gethostname()     # Get local machine name
my_port = 00000# Store a port for your service.
my_socket.connect((my_host, my_port))
print (my_socket.recv(1024))
my_socket.close