python Socket之客户端和服务端握手详解

发布时间 - 2026-01-11 03:17:41    点击率:

简单的学习下利用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  # Socket  # 客户端  # 服务端  # 握手  # 两张动图--带你搞懂TCP的三次握手与四次挥手  # 详解PHP Swoole与TCP三次握手  # TCP第三次握手传数据过程图解  # node.js 使用 net 模块模拟 websocket 握手进行数据传递操作示例  # TCP/IP协议中三次握手四次挥手的原理及流程分析  # 关于HTTPS的TSL握手  # 大家多多  # 操作过程  # decode  # data  # utf  # print  # recv  # Michael  # exit  # close  # Tracy  # Sarah  # send  # py  # pre  # class 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: SQL查询语句优化的实用方法总结  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  高端企业智能建站程序:SEO优化与响应式模板定制开发  香港服务器WordPress建站指南:SEO优化与高效部署策略  Android自定义控件实现温度旋转按钮效果  如何快速重置建站主机并恢复默认配置?  如何为不同团队 ID 动态生成多个独立按钮  南京网站制作费用,南京远驱官方网站?  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  PHP 500报错的快速解决方法  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  创业网站制作流程,创业网站可靠吗?  香港服务器租用费用高吗?如何避免常见误区?  Laravel如何保护应用免受CSRF攻击?(原理和示例)  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  JS去除重复并统计数量的实现方法  详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  网站图片在线制作软件,怎么在图片上做链接?  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  javascript如何操作浏览器历史记录_怎样实现无刷新导航  如何挑选优质建站一级代理提升网站排名?  bing浏览器学术搜索入口_bing学术文献检索地址  Laravel如何处理文件下载请求?(Response示例)  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  Laravel API资源类怎么用_Laravel API Resource数据转换  如何快速搭建高效可靠的建站解决方案?  如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)  如何在七牛云存储上搭建网站并设置自定义域名?  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  Swift开发中switch语句值绑定模式  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  Laravel如何处理异常和错误?(Handler示例)  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  零服务器AI建站解决方案:快速部署与云端平台低成本实践  如何在阿里云ECS服务器部署织梦CMS网站?  Android滚轮选择时间控件使用详解  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性