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 linecache.getline()读取文件中特定一行的脚本
Sep 06 Python
Python3基础之函数用法
Aug 13 Python
一键搞定python连接mysql驱动有关问题(windows版本)
Apr 23 Python
python用BeautifulSoup库简单爬虫实例分析
Jul 30 Python
详解python做UI界面的方法
Feb 27 Python
Python Django框架单元测试之文件上传测试示例
May 17 Python
Django之路由层的实现
Sep 09 Python
python能做什么 python的含义
Oct 12 Python
Pycharm创建项目时如何自动添加头部信息
Nov 14 Python
基于plt.title无法显示中文的快速解决
May 16 Python
基于PyTorch的permute和reshape/view的区别介绍
Jun 18 Python
如何在vscode中安装python库的方法步骤
Jan 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 fsockopen中多线程问题的解决办法[翻译]
2011/11/09 PHP
php _autoload自动加载类与机制分析
2012/02/10 PHP
浅谈PHP中JSON数据操作
2015/07/01 PHP
ThinkPHP5.0多个文件上传后找不到临时文件的修改方法
2018/07/30 PHP
PHP赋值的内部是如何跑的详解
2019/01/13 PHP
映彩衣的js随笔(js图片切换效果)
2011/07/31 Javascript
深入理解javascript动态插入技术
2013/11/12 Javascript
javascript四舍五入函数代码分享(保留后几位)
2013/12/10 Javascript
基于Jquery实现万圣节快乐特效
2015/11/01 Javascript
浅谈JavaScript中的分支结构
2016/07/01 Javascript
JS随机排序数组实现方法分析
2017/10/11 Javascript
详解vue + vuex + directives实现权限按钮的思路
2017/10/24 Javascript
HTML5+JS+JQuery+ECharts实现异步加载问题
2017/12/16 jQuery
react-router v4如何使用history控制路由跳转详解
2018/01/09 Javascript
200行HTML+JavaScript实现年会抽奖程序
2019/01/22 Javascript
微信小程序websocket聊天室的实现示例代码
2019/02/12 Javascript
Ant Design Pro 下实现文件下载的实现代码
2019/12/03 Javascript
[43:49]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
简单的连接MySQL与Python的Bottle框架的方法
2015/04/30 Python
Python内置的HTTP协议服务器SimpleHTTPServer使用指南
2016/03/30 Python
使用python3构建文件传输的方法
2019/02/13 Python
Django web框架使用url path name详解
2019/04/29 Python
Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年
2020/04/16 Python
Pyqt助手安装PyQt5帮助文档过程图解
2020/11/20 Python
加拿大领先的冒险和户外零售商:Atmosphere
2017/12/19 全球购物
NFL加拿大官方网上商店:NHLShop.ca
2019/03/12 全球购物
Bugatchi官方网站:男士服装在线
2019/04/10 全球购物
西班牙宠物用品和食品网上商店:Tiendanimal
2019/06/06 全球购物
出纳的岗位职责
2013/11/09 职场文书
2014年售后服务工作总结
2014/11/18 职场文书
小学语文复习计划
2015/01/19 职场文书
2015安全保卫工作总结
2015/04/25 职场文书
大学生奶茶店创业计划书
2019/06/25 职场文书
十大好看的穿越动漫排名:《瑞克和莫蒂》第一,国漫《有药》在榜
2022/03/18 日漫
Python 使用 Frame tkraise() 方法在 Tkinter 应用程序中的Frame之间切换
2022/04/24 Python
Spring boot admin 服务监控利器详解
2022/08/05 Java/Android