Python基础教程之tcp socket编程详解及简单实例


Posted in Python onFebruary 23, 2017

Python tcp socket编程详解

初学脚本语言Python,测试可用的tcp通讯程序:

服务器:

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 
 
import socket 
import threading 
import time 
 
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(b'Hello, %s!' % data); 
  sock.close(); 
  print('Connection from %s:%s closed.' % addr); 
 
 
if __name__ == "__main__": 
 
  s = socket.socket(socket.AF_INET, socket.SOCK_STREAM); 
 
  s.bind(('127.0.0.1', 9090)); 
  s.listen(8); #监听8个客户端; 
  print('waiting for connection...'); 
 
  while True: 
    sock, addr = s.accept(); 
    t = threading.Thread(target=tcplink, args=(sock,addr)); 
    t.start();

客户端:

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 
 
import socket 
 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM); 
s.connect(('127.0.0.1', 9090)); 
print(s.recv(1024).decode('utf-8')); 
for data in [b'lk', b'aa', b'bb']: 
  s.send(data); 
  print(s.recv(1024).decode('utf-8')); 
s.send(b'exit'); 
s.close();

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Python 相关文章推荐
python的keyword模块用法实例分析
Jun 30 Python
Python设计模式编程中解释器模式的简单程序示例分享
Mar 02 Python
Python程序中用csv模块来操作csv文件的基本使用教程
Mar 03 Python
Python装饰器用法实例总结
May 26 Python
浅谈Python2、Python3相对路径、绝对路径导入方法
Jun 22 Python
Python自动化之数据驱动让你的脚本简洁10倍【推荐】
Jun 04 Python
Python+pyplot绘制带文本标注的柱状图方法
Jul 08 Python
Django中reverse反转并且传递参数的方法
Aug 06 Python
python代码实现逻辑回归logistic原理
Aug 07 Python
python统计字符的个数代码实例
Feb 07 Python
Python通过2种方法输出带颜色字体
Mar 02 Python
python 提取html文本的方法
May 20 Python
Python命令启动Web服务器实例详解
Feb 23 #Python
Python 基础教程之包和类的用法
Feb 23 #Python
python安装oracle扩展及数据库连接方法
Feb 21 #Python
python安装cx_Oracle模块常见问题与解决方法
Feb 21 #Python
Python实现字符串格式化的方法小结
Feb 20 #Python
python爬虫实现教程转换成 PDF 电子书
Feb 19 #Python
Python 模块EasyGui详细介绍
Feb 19 #Python
You might like
Discuz 模板引擎的封装类代码
2008/07/18 PHP
php使用百度翻译api示例分享
2014/01/31 PHP
让CodeIgniter的ellipsize()支持中文截断的方法
2014/06/12 PHP
php数组排序usort、uksort与sort函数用法
2014/11/17 PHP
php使用cookie实现记住登录状态
2015/04/27 PHP
PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法
2016/04/01 PHP
三种取消选中单选框radio的方法
2014/09/09 Javascript
js对象的复制继承实例
2015/01/10 Javascript
深入了解JavaScript中的Symbol的使用方法
2015/07/28 Javascript
基于jQuery实现仿微博发布框字数提示
2016/07/27 Javascript
JavaScript仿网易选项卡制作代码
2016/10/06 Javascript
javascript 数组去重复(在线去重工具)
2016/12/17 Javascript
使用Vuex实现一个笔记应用的方法
2018/03/13 Javascript
手写简单的jQuery雪花飘落效果实例
2018/04/22 jQuery
[34:39]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#1COL VS EG第二局
2016/03/05 DOTA
Python的ORM框架SQLAlchemy入门教程
2014/04/28 Python
Python实现将xml导入至excel
2015/11/20 Python
解决python3在anaconda下安装caffe失败的问题
2017/06/15 Python
python numpy格式化打印的实例
2018/05/14 Python
Python小工具之消耗系统指定大小内存的方法
2018/12/03 Python
python之cv2与图像的载入、显示和保存实例
2018/12/05 Python
Python实现字典排序、按照list中字典的某个key排序的方法示例
2018/12/18 Python
在Python中如何传递任意数量的实参的示例代码
2019/03/21 Python
Python中字符串与编码示例代码
2019/05/20 Python
详解用python计算阶乘的几种方法
2019/08/14 Python
python 使用shutil复制图片的例子
2019/12/13 Python
Python实现银行账户资金交易管理系统
2020/01/03 Python
Python OpenCV去除字母后面的杂线操作
2020/07/05 Python
英国珠宝钟表和家居礼品精品店:David Shuttle
2018/02/24 全球购物
美国和加拿大房车出售在线分类广告:RVT.com
2018/04/23 全球购物
俄罗斯连接商品和买家的在线平台:goods.ru
2020/11/30 全球购物
学院领导推荐信
2013/10/30 职场文书
学习十八大的心得体会
2014/09/01 职场文书
少年的你:世界上没有如果,要在第一次就勇敢的反抗
2019/11/20 职场文书
go语言中http超时引发的事故解决
2021/06/02 Golang
利用 Python 的 Pandas和 NumPy 库来清理数据
2022/04/13 Python