>  기사  >  백엔드 개발  >  Python에서 소켓의 클라이언트와 서버 간의 핸드셰이크 예

Python에서 소켓의 클라이언트와 서버 간의 핸드셰이크 예

黄舟
黄舟원래의
2017-09-18 11:36:021912검색

이 글은 주로 Python 소켓의 클라이언트와 서버 핸드셰이크를 자세히 소개합니다. 관심 있는 친구들이 참고할 수 있습니다.

소켓을 사용하여 클라이언트와 서버를 연결하고 데이터를 보내는 간단한 방법입니다. 클라이언트 소켓Client.py 코드

import socket 
 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
# 建立连接: 
s.connect(('127.0.0.1', 9999)) 
# 接收欢迎消息: 
print(s.recv(1024).decode('utf-8')) 
for data in [b'Michael', b'Tracy', b'Sarah']: 
 # 发送数据: 
 s.send(data) 
 print(s.recv(1024).decode('utf-8')) 
s.send(b'exit') 
s.close()

2. 서버 serverSocket.py 코드

import socket 
import threading 
import time 
# from threading import Thread 
 
 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
# 监听端口: 
s.bind(('127.0.0.1', 9999)) 
s.listen(5) 
print('Waiting for connection...') 
 
def tcplink(sock, addr): 
 print('Accept new connection from %s:%s...' % addr) 
 sock.send(b'Welcome!') 
 while True: 
  data = sock.recv(1024) 
  time.sleep(1) 
  if not data or data.decode('utf-8') == 'exit': 
   break 
  sock.send(('Hello, %s!' % data.decode('utf-8')).encode('utf-8')) 
 sock.close() 
 print('Connection from %s:%s closed.' % addr) 
 
while True: 
 # 接受一个新连接: 
 sock, addr = s.accept() 
 # 创建新线程来处理TCP连接: 
 t = threading.Thread(target=tcplink, args=(sock, addr)) 
 t.start()

3. 작업 프로세스

두 개의 콘솔 창을 열고 먼저 서버 python3 serverSocket.py

를 실행합니다. python3 SocketClient.py

소켓 연결 스크린샷은 다음과 같습니다

위 내용은 Python에서 소켓의 클라이언트와 서버 간의 핸드셰이크 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.