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 相关文章推荐
python实现堆栈与队列的方法
Jan 15 Python
Python中使用select模块实现非阻塞的IO
Feb 03 Python
对python读写文件去重、RE、set的使用详解
Dec 11 Python
解决python2 绘图title,xlabel,ylabel出现中文乱码的问题
Jan 29 Python
对PyQt5中树结构的实现方法详解
Jun 17 Python
python使用pandas处理excel文件转为csv文件的方法示例
Jul 18 Python
简单了解python数组的基本操作
Nov 26 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
Nov 29 Python
Python单元测试模块doctest的具体使用
Feb 10 Python
使用Tkinter制作信息提示框
Feb 18 Python
python代码实现TSNE降维数据可视化教程
Feb 28 Python
Django利用AJAX技术实现博文实时搜索
May 06 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 array_search() 函数使用
2010/04/13 PHP
使用Curl进行抓取远程内容时url中文编码问题示例探讨
2013/10/29 PHP
JavaScript 嵌套函数指向this对象错误的解决方法
2010/03/15 Javascript
基于jquery的表头固定的若干方法
2011/01/27 Javascript
幻灯片带网页设计中的20个奇妙应用示例小结
2012/05/27 Javascript
jquery js 获取时间差、时间格式具体代码
2013/06/05 Javascript
jQuery中offset()方法用法实例
2015/01/16 Javascript
js实现上传图片预览的方法
2015/02/09 Javascript
纯html+css+javascript实现楼层跳跃式的页面布局(实例代码)
2017/10/25 Javascript
JS基于Location实现访问Url、重定向及刷新页面的方法分析
2018/12/03 Javascript
微信小程序学习笔记之函数定义、页面渲染图文详解
2019/03/28 Javascript
开发中常用的25个JavaScript单行代码(小结)
2019/06/28 Javascript
微信小程序返回上一级页面的实现代码
2020/06/19 Javascript
Vue项目中数据的深度监听或对象属性的监听实例
2020/07/17 Javascript
关于angular引入ng-zorro的问题浅析
2020/09/09 Javascript
Node.js利用Express实现用户注册登陆功能(推荐)
2020/10/26 Javascript
基于python实现微信模板消息
2015/12/21 Python
Python判断文本中消息重复次数的方法
2016/04/27 Python
Python操作csv文件实例详解
2017/07/31 Python
python 实现求解字符串集的最长公共前缀方法
2018/07/20 Python
解决python 自动安装缺少模块的问题
2018/10/22 Python
Pycharm中import torch报错的快速解决方法
2020/03/05 Python
基于python SMTP实现自动发送邮件教程解析
2020/06/02 Python
Python3爬虫关于代理池的维护详解
2020/07/30 Python
PyCharm 2020.2 安装详细教程
2020/09/25 Python
python3中TQDM库安装及使用详解
2020/11/18 Python
检测用户浏览器是否支持CSS3的方法
2009/08/29 HTML / CSS
New Balance天猫官方旗舰店:始于1906年,百年慢跑品牌
2017/11/15 全球购物
大专自我鉴定范文
2013/10/23 职场文书
安全大检查反思材料
2014/01/31 职场文书
工作试用期自我评价
2015/03/10 职场文书
nginx常用命令放入shell脚本详解
2021/03/31 Servers
python迷宫问题深度优先遍历实例
2021/06/20 Python
Windows Server 2022 超融合部署(图文教程)
2022/06/25 Servers
zabbix如何添加监控主机和自定义监控项
2022/08/14 Servers
python 镜像环境搭建总结
2022/09/23 Python