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入门_条件控制(详解)
May 16 Python
Python实现数据库并行读取和写入实例
Jun 09 Python
Python中eval带来的潜在风险代码分析
Dec 11 Python
Django实现登录随机验证码的示例代码
Jun 20 Python
pandas 透视表中文字段排序方法
Nov 16 Python
Python设计模式之装饰模式实例详解
Jan 21 Python
Python单链表原理与实现方法详解
Feb 22 Python
Python @property及getter setter原理详解
Mar 31 Python
解决Jupyter NoteBook输出的图表太小看不清问题
Apr 16 Python
Python操作Excel把数据分给sheet
May 20 Python
在Django中使用MQTT的方法
May 10 Python
Python Pandas 删除列操作
Mar 16 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的中问验证码
2006/11/25 PHP
Yii入门教程之目录结构、入口文件及路由设置
2014/11/25 PHP
PHP回调函数与匿名函数实例详解
2017/08/16 PHP
解决Laravel 使用insert插入数据,字段created_at为0000的问题
2019/10/11 PHP
javascript的字符串按引用复制和传递,按值来比较介绍与应用
2012/12/28 Javascript
js实现精美的银灰色竖排折叠菜单
2015/05/16 Javascript
js实现仿qq消息的弹出窗效果
2016/01/06 Javascript
移动端jQuery修正Web页面滑动时div问题的两则实例
2016/05/30 Javascript
Bootstrap基本插件学习笔记之模态对话框(16)
2016/12/08 Javascript
基于BootStrap与jQuery.validate实现表单提交校验功能
2016/12/22 Javascript
详解用node编写自己的cli工具
2017/05/23 Javascript
React服务端渲染(总结)
2017/07/01 Javascript
extjs简介_动力节点Java学院整理
2017/07/17 Javascript
vue路由懒加载的实现方法
2018/03/12 Javascript
详解使用jQuery.i18n.properties实现js国际化
2018/05/04 jQuery
Vuex持久化插件(vuex-persistedstate)解决刷新数据消失的问题
2019/04/16 Javascript
js前端如何写一个精确的倒计时代码
2019/10/25 Javascript
使用Promise封装小程序wx.request的实现方法
2019/11/13 Javascript
基于Angular 8和Bootstrap 4实现动态主题切换的示例代码
2020/02/11 Javascript
单线程JavaScript实现异步过程详解
2020/05/19 Javascript
JavaScript缓动动画函数的封装方法
2020/11/25 Javascript
[02:49]DOTA2完美大师赛首日观众采访
2017/11/23 DOTA
python读写文件操作示例程序
2013/12/02 Python
python中MySQLdb模块用法实例
2014/11/10 Python
Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法
2015/05/16 Python
Python列表常见操作详解(获取,增加,删除,修改,排序等)
2019/02/18 Python
Python使用matplotlib绘制Logistic曲线操作示例
2019/11/28 Python
Python经纬度坐标转换为距离及角度的实现
2020/11/01 Python
Pytest测试框架基本使用方法详解
2020/11/25 Python
Pytorch 图像变换函数集合小结
2021/02/01 Python
波兰灯具、照明和LED购物网站:Lampy.pl
2019/03/11 全球购物
运动会稿件200字
2014/02/07 职场文书
公司档案管理制度
2015/08/05 职场文书
小学语文课《掌声》教学反思
2016/03/03 职场文书
甜美蛋糕店的创业计划书模板,拿来即用!
2019/08/21 职场文书
python实现批量移动文件
2021/04/05 Python