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实现简单字典树的方法
Apr 29 Python
Python实现求数列和的方法示例
Jan 12 Python
python中(str,list,tuple)基础知识汇总
Feb 20 Python
python高级特性和高阶函数及使用详解
Oct 17 Python
Pytorch中的自动求梯度机制和Variable类实例
Feb 29 Python
Python字符串hashlib加密模块使用案例
Mar 10 Python
Python如何把Spark数据写入ElasticSearch
Apr 18 Python
完美解决pycharm 不显示代码提示问题
Jun 02 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
Jun 10 Python
python实例化对象的具体方法
Jun 17 Python
Python内置函数property()如何使用
Sep 01 Python
Python NumPy灰度图像的压缩原理讲解
Aug 04 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之对抗Web扫描器的脚本技巧
2008/10/01 PHP
用PHP的超级变量$_GET获取HTML表单(Form) 数据
2011/05/07 PHP
PHP连接MongoDB示例代码
2012/09/06 PHP
PHP实现利用MySQL保存session的方法
2014/08/23 PHP
完美解决phpdoc导出文档中@package的warning及Error的错误
2016/05/17 PHP
CodeIgniter常用知识点小结
2016/05/26 PHP
PHP yii实现model添加默认值的方法(两种方法)
2016/11/10 PHP
PHP解析url并得到url参数方法总结
2018/10/11 PHP
仿校内登陆框,精美,给那些很厉害但是没有设计天才的程序员
2008/11/24 Javascript
用JavaScript编写COM组件的步骤
2009/03/17 Javascript
浅说js变量
2011/05/25 Javascript
js制作网站首页图片轮播特效代码
2016/08/30 Javascript
清除浏览器缓存的几种方法总结(必看)
2016/12/09 Javascript
JavaScript数组复制详解
2017/02/02 Javascript
JavaScript简单计算人的年龄示例
2017/04/15 Javascript
JavaScript之underscore_动力节点Java学院整理
2017/07/03 Javascript
Vue.js进行查询操作的实例详解
2017/08/25 Javascript
javascript使用正则实现去掉字符串前面的所有0
2018/07/23 Javascript
对Vue.js之事件的绑定(v-on: 或者 @ )详解
2018/09/15 Javascript
element上传组件循环引用及简单时间倒计时的实现
2018/10/01 Javascript
vue项目引入Iconfont图标库的教程图解
2018/10/24 Javascript
IE8中jQuery.load()加载页面不显示的原因
2018/11/15 jQuery
js校验开始时间和结束时间
2020/05/26 Javascript
Vue如何提升首屏加载速度实例解析
2020/06/25 Javascript
python连接mongodb操作数据示例(mongodb数据库配置类)
2013/12/31 Python
Python闭包之返回函数的函数用法示例
2018/01/27 Python
Python使用reportlab模块生成PDF格式的文档
2019/03/11 Python
基于pytorch padding=SAME的解决方式
2020/02/18 Python
深入解析HTML5 Canvas控制图形矩阵变换的方法
2016/03/24 HTML / CSS
师德建设实施方案
2014/03/21 职场文书
群众路线教育实践活动批评与自我批评
2014/09/15 职场文书
2014年英语教研组工作总结
2014/12/06 职场文书
谢师宴答谢词
2015/01/05 职场文书
党支部半年考察意见
2015/06/01 职场文书
2016年公司新年寄语
2015/08/17 职场文书
如何书写公司员工保密协议?
2019/06/27 职场文书