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


Posted in Python onSeptember 18, 2017

简单的学习下利用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之客户端和服务端握手详解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python3 pillow生成简单验证码图片的示例
Sep 19 Python
python3使用requests模块爬取页面内容的实战演练
Sep 25 Python
Python实现模拟分割大文件及多线程处理的方法
Oct 10 Python
python如何使用正则表达式的前向、后向搜索及前向搜索否定模式详解
Nov 08 Python
python和flask中返回JSON数据的方法
Mar 26 Python
使用django的ORM框架按月统计近一年内的数据方法
Jul 18 Python
Python实现朴素贝叶斯的学习与分类过程解析
Aug 24 Python
Django实现分页显示效果
Oct 31 Python
Python requests.post方法中data与json参数区别详解
Apr 30 Python
DataFrame 数据合并实现(merge,join,concat)
Jun 14 Python
如何用Matlab和Python读取Netcdf文件
Feb 19 Python
pytorch finetuning 自己的图片进行训练操作
Jun 05 Python
Python基于time模块求程序运行时间的方法
Sep 18 #Python
Python使用当前时间、随机数产生一个唯一数字的方法
Sep 18 #Python
Python实现变量数值交换及判断数组是否含有某个元素的方法
Sep 18 #Python
Python实现输出程序执行进度百分比的方法
Sep 16 #Python
Python实现求笛卡尔乘积的方法
Sep 16 #Python
轻松理解Python 中的 descriptor
Sep 15 #Python
Python 实现购物商城,含有用户入口和商家入口的示例
Sep 15 #Python
You might like
php网页后退不再出现过期
2007/03/08 PHP
PHP中设置时区,记录日志文件的实现代码
2013/01/07 PHP
微信获取用户地理位置信息的原理与步骤
2015/11/12 PHP
Laravel网站打开速度优化的方法汇总
2017/07/16 PHP
浅谈laravel框架与thinkPHP框架的区别
2019/10/23 PHP
写自已的js类库需要的核心代码
2012/07/16 Javascript
ajax不执行success回调而是执行了error回调
2012/12/10 Javascript
JavaScript让网页出现渐隐渐显背景颜色的方法
2015/04/21 Javascript
js实现鼠标移到链接文字弹出一个提示层的方法
2015/05/11 Javascript
JS控制表单提交的方法
2015/07/09 Javascript
javascript设计模式之对象工厂函数与构造函数详解
2015/07/30 Javascript
基于javascript实现文字无缝滚动效果
2016/03/22 Javascript
js canvas实现擦除动画
2016/07/16 Javascript
mpvue小程序仿qq左滑置顶删除组件
2018/08/03 Javascript
解决vue.js 数据渲染成功仍报错的问题
2018/08/25 Javascript
小试SVG之新手小白入门教程
2019/01/08 Javascript
js中的reduce()函数讲解
2019/01/18 Javascript
OpenLayers3实现地图显示功能
2020/09/25 Javascript
[00:27]DOTA2荣耀之路2:Patience from zhou!
2018/05/24 DOTA
Python 40行代码实现人脸识别功能
2017/04/02 Python
对python抓取需要登录网站数据的方法详解
2018/05/21 Python
对python中for、if、while的区别与比较方法
2018/06/25 Python
python利用插值法对折线进行平滑曲线处理
2018/12/25 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
2019/08/28 Python
python使用pymongo与MongoDB基本交互操作示例
2020/04/09 Python
Python-jenkins模块获取jobs的执行状态操作
2020/05/12 Python
解析HTML5中的新功能本地存储localStorage
2016/03/01 HTML / CSS
酒店应聘自荐信
2013/11/09 职场文书
运动会解说词100字
2014/01/31 职场文书
公司请假条格式
2014/04/11 职场文书
篮球兴趣小组活动总结
2014/07/07 职场文书
2015社区健康教育工作总结
2015/05/20 职场文书
西游降魔篇观后感
2015/06/15 职场文书
父亲去世追悼词
2015/06/23 职场文书
教师节随笔
2015/08/15 职场文书
Python3 使用pip安装git并获取Yahoo金融数据的操作
2021/04/08 Python