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 从远程服务器下载东西的代码
Feb 10 Python
urllib2自定义opener详解
Feb 07 Python
对Python新手编程过程中如何规避一些常见问题的建议
Apr 01 Python
Python下线程之间的共享和释放示例
May 04 Python
Python学习之Anaconda的使用与配置方法
Jan 04 Python
简单谈谈python基本数据类型
Sep 26 Python
pyqt远程批量执行Linux命令程序的方法
Feb 14 Python
10招!看骨灰级Pythoner玩转Python的方法
Apr 15 Python
对Tensorflow中tensorboard日志的生成与显示详解
Feb 04 Python
pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)
Jun 24 Python
python 浮点数四舍五入需要注意的地方
Aug 18 Python
python定义具名元组实例操作
Feb 28 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脚本的10个技巧(3)
2006/10/09 PHP
php基于表单密码验证与HTTP验证用法实例
2015/01/06 PHP
PHP查找数值数组中不重复最大和最小的10个数的方法
2015/04/20 PHP
隐藏Nginx或Apache以及PHP的版本号的方法
2016/01/03 PHP
PHP上传图片、删除图片简单实例
2016/11/12 PHP
PHP变量的作用范围实例讲解
2020/12/22 PHP
javascript的onchange事件与jQuery的change()方法比较
2009/09/28 Javascript
javascript中的array数组使用技巧
2010/01/31 Javascript
基于jQuery的消息提示插件之旅 DivAlert(三)
2010/04/01 Javascript
浅析JavaScript原型继承的陷阱
2013/12/03 Javascript
JS+CSS实现精美的二级导航效果代码
2015/09/17 Javascript
jquery Deferred 快速解决异步回调的问题
2016/04/05 Javascript
jquery根据td给相同tr下其他td赋值的实现方法
2016/10/05 Javascript
深入理解JS实现快速排序和去重
2016/10/17 Javascript
jQuery使用正则表达式替换dom元素标签用法示例
2017/01/16 Javascript
Vue v-text指令简单使用方法示例
2019/09/19 Javascript
VUE 动态组件的应用案例分析
2019/12/02 Javascript
JavaScript中window和document用法详解
2020/07/28 Javascript
vue 保留两位小数 不能直接用toFixed(2) 的解决
2020/08/07 Javascript
Python实现国外赌场热门游戏Craps(双骰子)
2015/03/31 Python
Python 按比例获取样本数据或执行任务的实现代码
2020/12/03 Python
python Protobuf定义消息类型知识点讲解
2021/03/02 Python
Sephora丝芙兰澳洲官方网站:国际知名化妆品购物
2016/10/27 全球购物
One.com挪威:北欧成长最快的网络托管公司
2016/11/19 全球购物
马来西亚银饰品牌:JEOEL
2017/12/15 全球购物
是否有自动比较结构的方法
2015/06/03 面试题
初级软件工程师面试题 Junior Software Engineer Interview
2015/02/15 面试题
英语自我评价范文
2014/01/24 职场文书
小学作文评语大全
2014/04/21 职场文书
博士生导师推荐信
2014/07/08 职场文书
运动会演讲稿300字
2014/08/25 职场文书
公司员工离职证明书
2014/10/04 职场文书
怎样写辞职信
2015/02/27 职场文书
银行自荐信范文
2015/03/25 职场文书
python异步的ASGI与Fast Api实现
2021/07/16 Python
5种方法告诉你如何使JavaScript 代码库更干净
2021/09/15 Javascript