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中defaultdict的用法详解
Jun 07 Python
python实现扫描日志关键字的示例
Apr 28 Python
python爬取酷狗音乐排行榜
Feb 20 Python
python三引号输出方法
Feb 27 Python
numpy求平均值的维度设定的例子
Aug 24 Python
python实现多进程通信实例分析
Sep 01 Python
python 利用turtle模块画出没有角的方格
Nov 23 Python
浅谈Python中的继承
Jun 19 Python
Pytorch框架实现mnist手写库识别(与tensorflow对比)
Jul 20 Python
python3.9之你应该知道的新特性详解
Apr 29 Python
Python调用腾讯API实现人脸身份证比对功能
Apr 04 Python
Python使用Beautiful Soup(BS4)库解析HTML和XML
Jun 05 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
php cache类代码(php数据缓存类)
2010/04/15 PHP
php checkbox 取值详细说明
2010/08/19 PHP
php设计模式 Template (模板模式)
2011/06/26 PHP
PHP远程采集图片详细教程
2014/07/01 PHP
tp5(thinkPHP5框架)时间查询操作实例分析
2019/05/29 PHP
laravel 实现根据字段不同值做不同查询
2019/10/23 PHP
Javascript 模式实例 观察者模式
2009/10/24 Javascript
在Linux上用forever实现Node.js项目自启动
2014/07/09 Javascript
一段非常简单的js判断浏览器的内核
2014/08/17 Javascript
原生JS实现LOADING效果
2015/03/16 Javascript
详解AngularJS中的表达式使用
2015/06/16 Javascript
javascript实现的淘宝旅行通用日历组件用法实例
2015/08/03 Javascript
浅谈javascript alert和confirm的美化
2016/12/15 Javascript
浅谈$_FILES数组为空的原因
2017/02/16 Javascript
vue-router2.0 组件之间传参及获取动态参数的方法
2017/11/10 Javascript
使用mint-ui实现省市区三级联动效果的示例代码
2018/02/09 Javascript
jQuery实现的鼠标响应缓冲动画效果示例
2018/02/13 jQuery
Nuxt.js实战和配置详解
2019/08/05 Javascript
JS中封装axios来管控api的2种方式
2019/09/11 Javascript
JS数据类型(基本数据类型、引用数据类型)及堆和栈的区别分析
2020/03/04 Javascript
Vue实现多页签组件
2021/01/14 Vue.js
在Python的Flask框架中使用模版的入门教程
2015/04/20 Python
python开发之tkinter实现图形随鼠标移动的方法
2015/11/11 Python
numpy实现合并多维矩阵、list的扩展方法
2018/05/08 Python
使用虚拟环境打包python为exe 文件的方法
2019/08/29 Python
Django2 连接MySQL及model测试实例分析
2019/12/10 Python
Python+MySQL随机试卷及答案生成程序的示例代码
2021/02/01 Python
美国最受欢迎的童装品牌之一:The Children’s Place
2016/07/23 全球购物
Clarks其乐鞋荷兰官网:Clarks荷兰
2019/07/05 全球购物
专科毕业生自我鉴定
2013/12/01 职场文书
2014年教师政治学习材料
2014/06/02 职场文书
化工见习报告范文
2014/10/31 职场文书
幼儿园小班开学寄语
2015/05/27 职场文书
小学六年级班主任工作经验交流材料
2015/11/02 职场文书
幼儿园师德师风心得体会
2016/01/12 职场文书
详解非极大值抑制算法之Python实现
2021/06/28 Python