Socket with Python
Socket을 사용하게 된 이유
프로젝트를 진행하면서 컴퓨터 1대에는 감정인식, 다른 한대에는 답변 생성기로 부득이하게 나누어 진행했다.
기존에는 답변생성기에 웹 서버를 구현해서 만들었었는데, 감정인식을 하는 본래 우리 컴퓨터에 웹서버를 만들기 위해서 socket통신 방식을 선택했다.
python Socket 사용 법
server.py
import socket
host = "127.0.0.1" #서버 ip주소
port = 8080 # 서버 포트
soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #tcp방식으로 연결
soc.bind((host, port))
soc.listen(5) #5개 까지 연결 가능
while(True):
conn, addr = soc.accept()
print (addr) # 연결 주소 출력
conn.send("server가 보낸다")
conn.close()#연결 중지
cli.py
import socket
soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #tcp방식으로
host = "127.0.0.1" # 서버 아이피
port = 8080 # 서버 포트
while(True):
soc.connect( (host, port) ) # 서버측으로 연결
print soc.recv(1024) # 서버측에서 보낸 데이터 1024 버퍼만큼 받기
soc.send("Client. Hello!!!") # 서버측으로 문자열을 보내기
soc.close() # 연결 종료
server 와 client의 socket 통신 구조
- 웹 서버를 가지고 있는 client가 사용자의 발화를 입력 받은 뒤 server로 전달한다.
- 서버는 전달받은 발화로 답변을 생성하고 client에게 전송한다.
- client가 이를 받고 flask에 데이터를 전송한다.
- 웹화면에 채팅 형태로 발화가 출력된다.
Github 주소: https://github.com/dividiviDeep/chatbot/blob/master/cli.py
'Web' 카테고리의 다른 글
[Authorization] OAuth 2.0 (0) | 2021.07.28 |
---|---|
[Docker] Dockerfile 만들기 (0) | 2021.07.28 |
[HTTP] METHOD (0) | 2021.07.28 |