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 10 Python
python多进程操作实例
Nov 21 Python
Python实现的求解最小公倍数算法示例
May 03 Python
Python tkinter的grid布局及Text动态显示方法
Oct 11 Python
Python3使用Matplotlib 绘制精美的数学函数图形
Apr 11 Python
使用Python和Prometheus跟踪天气的使用方法
May 06 Python
django框架基于queryset和双下划线的跨表查询操作详解
Dec 11 Python
scrapy数据存储在mysql数据库的两种方式(同步和异步)
Feb 18 Python
配置python的编程环境之Anaconda + VSCode的教程
Mar 29 Python
Python关键字及可变参数*args,**kw原理解析
Apr 04 Python
解决Jupyter notebook更换主题工具栏被隐藏及添加目录生成插件问题
Apr 20 Python
Pycharm插件(Grep Console)自定义规则输出颜色日志的方法
May 27 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
thinkphp文件处理类Dir.class.php的用法分析
2014/12/08 PHP
调试WordPress中定时任务的相关PHP脚本示例
2015/12/10 PHP
PHP动态生成指定大小随机图片的方法
2016/03/25 PHP
PHP发送AT指令实例代码
2016/05/26 PHP
php解析非标准json、非规范json的方式实例
2020/12/10 PHP
js cookies 常见网页木马挂马代码 24小时只加载一次
2009/04/13 Javascript
JavaScript高级程序设计(第3版)学习笔记12 js正则表达式
2012/10/11 Javascript
JS实现字体选色板实例代码
2013/11/20 Javascript
js控制分页打印、打印分页示例
2014/02/08 Javascript
jQuery插件zepto.js简单实现tab切换
2015/06/16 Javascript
sencha ext js 6 快速入门(必看)
2016/06/01 Javascript
jQuery 跨域访问解决原理案例详解
2016/07/09 Javascript
jQuery插件FusionCharts实现的MSBar2D图效果示例【附demo源码】
2017/03/24 jQuery
详解node+express+ejs+bootstrap构建项目
2017/09/27 Javascript
茶余饭后聊聊Vue3.0响应式数据那些事儿
2019/10/30 Javascript
完美解决通过IP地址访问VUE项目的问题
2020/07/18 Javascript
JavaScript文档加载模式以及元素获取
2020/07/28 Javascript
UEditor 自定义图片视频尺寸校验功能的实现代码
2020/10/20 Javascript
ant design pro中可控的筛选和排序实例
2020/11/17 Javascript
[02:43]DOTA2亚洲邀请赛场馆攻略——带你走进东方体育中心
2018/03/19 DOTA
Python去除列表中重复元素的方法
2015/03/20 Python
对pandas中两种数据类型Series和DataFrame的区别详解
2018/11/12 Python
对python 自定义协议的方法详解
2019/02/13 Python
Python模拟伯努利试验和二项分布代码实例
2020/05/27 Python
狗狗玩具、零食和咀嚼物的月度送货服务:Super Chewer
2018/08/22 全球购物
请解释流与文件有什么不同
2016/07/29 面试题
Internal修饰符有什么含义
2013/07/10 面试题
商场消防管理制度
2014/01/12 职场文书
工作失职检讨书范文
2014/01/16 职场文书
房屋租赁意向书
2014/04/01 职场文书
派出所所长先进事迹
2014/05/19 职场文书
律师催款函范文
2015/06/24 职场文书
2015军训通讯稿大全
2015/07/18 职场文书
Python实现拼音转换
2021/06/07 Python
Python 数据可视化之Seaborn详解
2021/11/02 Python
nginx共享内存的机制详解
2022/03/21 Servers