티스토리 뷰

출처 : https://realpython.com/python-sockets/


파이썬을 사용해 소켓 프로그래밍을 해보장.


소켓에 대한 자세한 내용은 https://watchout31337.tistory.com/68?category=901071


[server code]


import socket

HOST = '127.0.0.1' # loopback interface를 이용한다. 즉, 내가 나한테 메세지를 보낸다.
PORT = 9999 # 사용할 포트를 정한다.


# socket.socket() 함수로 socket을 setting한다.
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((HOST, PORT)) # host와 port를 bind한다.
s.listen() # listen 상태로 설정한다.
conn, addr = s.accept() # client로 부터 소켓과 주소 반환,conn은 실제 통신용 소켓,addr은 연결 주소,conn과 addr을 socket과 연결
with conn:
print('Connected by', addr)
while True:
data = conn.recv(1024) #data = conn으로 부터 받은 최대길이 1024byte의 문자열
if not data:
break
conn.sendall(data) #소켓에 data를 전송





[client code]


import socket

HOST = '127.0.0.1'
PORT = 65432

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT)) #서버 소켓으로 연결시도, 서버에서는 host와port를 받으면 accept
s.sendall(b'Hello, world') #data 전송
data = s.recv(1024) #서버의 응답 받음

print('Received', repr(data))




[실행하기]


먼저 서버 쪽을 실행시켜 listening 상태를 만든다.


이 때 netstat -tnlp 명령어로 열려있는 tcp listening상태인 포트를 확인해보면


python3를 이용하는 9999포트가 열려있다.


여기서 클라이언트 쪽을 실행시키면 메세지가 전송된다.


(서버 쪽)


(클라이언트 쪽)

'파이썬 > 파이썬 공부' 카테고리의 다른 글

파이썬 map 함수  (0) 2020.08.28
파이썬 enumerate함수  (0) 2020.08.28
파이썬 b-string,f-string  (0) 2020.08.23
파이썬 크롤링 beautiful soup 설치  (0) 2020.08.22
파이썬 thread 소켓 프로그래밍  (0) 2020.08.21
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함