[Python] 소켓 통신하기

라즈비안으로 통신을 할 일이 생겨서 테스트를 좀 해봤다.

소켓 통신에 필요한 모듈은 아주 정직한 이름의 'socket'이다.

# 서버
import socket # socket module

my_address = '블라블라' # 서버로 쓸 컴퓨터의 ip 주소를 넣는다.
port = 12345 # 사용할 포트 아무거나
socket_address=(my_address, port) # 사용할 함수의 파라미터에서 튜플을 받는다.

# 서버 생성
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(socket_address)
server_socket.listen(1) # 사용할 대기 큐 개수다

print('## Server is Running ##')

# main loop
while True:
    client_socket, addr = server_socket.accept() # 연결될때까지 대기한다.
    print('# client connected')
    data = client_socket.recv(65535) # 버퍼사이즈 명시하고 데이터를 받는다.
    print('# client say: '+data)
    client_socket.close() # 소켓 연결을 끈다.
# 클라이언트
import socket

# 아까 위와 동일
server_address = '블라블라'
port = 12345
socket_address = (server_address,port)

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(socket_address)
sock.send('Hello?'.encode()) # utf8로 인코딩 후 보냄
sock.close()

일단 서버를 먼저 돌린다.

실행됐다.


이제 클라이언트로 데이터를 쏴주자

빠밤