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 从远程服务器下载东西的代码
Feb 10 Python
Python中的推导式使用详解
Jun 03 Python
python中的lambda表达式用法详解
Jun 22 Python
详解Python读取配置文件模块ConfigParser
May 11 Python
Python3.5 Pandas模块之Series用法实例分析
Apr 23 Python
使用python serial 获取所有的串口名称的实例
Jul 02 Python
解决Django migrate不能发现app.models的表问题
Aug 31 Python
python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例
Feb 26 Python
Python3自定义json逐层解析器代码
May 11 Python
详解python命令提示符窗口下如何运行python脚本
Sep 11 Python
Python 详解通过Scrapy框架实现爬取百度新冠疫情数据流程
Nov 11 Python
PYTHON基于Pyecharts绘制常见的直角坐标系图表
Apr 28 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
一个域名查询的程序
2006/10/09 PHP
php入门学习知识点六 PHP文件的读写操作代码
2011/07/14 PHP
解析如何在PHP下载文件名中解决乱码的问题
2013/06/20 PHP
php警告Creating default object from empty value 问题的解决方法
2014/04/02 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
2016/08/17 PHP
php格式文件打开的四种方法
2018/02/24 PHP
CI框架(CodeIgniter)实现的数据库增删改查操作总结
2018/05/23 PHP
让人期待的2011年度最佳 jQuery 插件分享
2012/03/16 Javascript
javascript数字格式化通用类 accounting.js使用
2012/08/24 Javascript
CSS+jQuery实现的一个放大缩小动画效果
2013/09/24 Javascript
javascript中slice(),splice(),split(),substring(),substr()使用方法
2015/03/13 Javascript
在Mac OS下使用Node.js的简单教程
2015/06/24 Javascript
Javascript 制作图形验证码实例详解
2016/12/22 Javascript
JS常用知识点整理
2017/01/21 Javascript
vue2.0结合DataTable插件实现表格动态刷新的方法详解
2017/03/17 Javascript
vue路由拦截器和请求拦截器知识点总结
2019/11/08 Javascript
js+html+css实现手动轮播和自动轮播
2020/12/30 Javascript
Python中设置变量作为默认值时容易遇到的错误
2015/04/03 Python
对numpy 数组和矩阵的乘法的进一步理解
2018/04/04 Python
Python实用技巧之列表、字典、集合中根据条件筛选数据详解
2018/07/11 Python
pandas的qcut()方法详解
2019/07/06 Python
详解python算法常用技巧与内置库
2020/10/17 Python
深入理解css属性的选择对动画性能的影响
2016/04/20 HTML / CSS
详解CSS3中的box-sizing(content-box与border-box)
2019/04/19 HTML / CSS
大学生就业推荐信范文
2013/11/29 职场文书
幼儿生日活动方案
2014/08/27 职场文书
基层领导干部“四风”问题批评与自我批评
2014/09/23 职场文书
初中毕业生自我评价
2015/03/02 职场文书
礼貌问候语大全
2015/11/10 职场文书
《鲸》教学反思
2016/02/23 职场文书
2016年教师党员承诺书范文
2016/03/24 职场文书
优秀员工演讲稿
2019/06/21 职场文书
Python机器学习之基于Pytorch实现猫狗分类
2021/06/08 Python
Python 的 sum() Pythonic 的求和方法详细
2021/10/16 Python
十大必看国产动漫排名,魁拔上线,第二曾在日本播出
2022/03/18 国漫
vue3 自定义图片放大器效果的示例代码
2022/07/23 Vue.js