Python Socket编程:客户端与服务端握手连接详解

小石头
小石头
发布时间:2026-10-13 | 6人浏览过
原创

本文详细介绍如何利用Python的socket库建立客户端与服务端之间的TCP连接。通过提供完整的客户端socketClient.py和服务端serverSocket.py代码示例,演示了从绑定端口、监听连接、处理多线程请求到数据发送与接收的全过程。文章还包含了具体的控制台操作步骤及连接截图,帮助读者快速掌握Socket通信的基本原理与实现方法。

本节旨在简要学习如何使用socket模块建立客户端与服务端之间的连接,并实现数据的发送与接收。

1. 客户端socketClient.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

Socket连接成功后的截图如下所示

以上就是本文的全部内容,希望对各位的学习有所帮助,也欢迎大家多多支持本站。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表