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 相关文章推荐
pyv8学习python和javascript变量进行交互
Dec 04 Python
Python Queue模块详解
Nov 30 Python
Python标准库defaultdict模块使用示例
Apr 28 Python
用Python编写简单的定时器的方法
May 02 Python
Python使用爬虫猜密码
Feb 19 Python
python实现图书管理系统
Mar 12 Python
python re模块的高级用法详解
Jun 06 Python
Python学习笔记之pandas索引列、过滤、分组、求和功能示例
Jun 03 Python
python实现银行管理系统
Oct 25 Python
python使用paramiko实现ssh的功能详解
Mar 06 Python
Python项目跨域问题解决方案
Jun 22 Python
pytorch 如何使用float64训练
May 24 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
PHILIPS L4X25T电路分析和打理
2021/03/02 无线电
Windows中安装Apache2和PHP4权威指南
2006/11/18 PHP
php基础知识:类与对象(5) static
2006/12/13 PHP
php调用mysql数据 dbclass类
2011/05/07 PHP
简单介绍win7下搭建apache+php+mysql开发环境
2015/08/06 PHP
php生成随机数/生成随机字符串的方法小结【5种方法】
2020/05/27 PHP
js加减乘除丢失精度问题解决方法
2014/05/16 Javascript
网站基于flash实现的Banner图切换效果代码
2014/10/14 Javascript
基于js与flash实现的网站flv视频播放插件代码
2014/10/14 Javascript
jquery中animate的stop()方法作用实例分析
2015/01/30 Javascript
js仿百度登录页实现拖动窗口效果
2016/03/11 Javascript
js拖拽的原型声明和用法总结
2016/04/04 Javascript
Vuejs第一篇之入门教程详解(单向绑定、双向绑定、列表渲染、响应函数)
2016/09/09 Javascript
基于Vue.js实现简单搜索框
2020/03/26 Javascript
async/await与promise(nodejs中的异步操作问题)
2017/03/03 NodeJs
AngularJS中的作用域实例分析
2018/05/16 Javascript
vue.js自定义组件directives的实例代码
2018/11/09 Javascript
JavaScript 严格模式(use strict)用法实例分析
2020/03/04 Javascript
vue单文件组件无法获取$refs的问题
2020/06/24 Javascript
Python删除指定目录下过期文件的2个脚本分享
2014/04/10 Python
解决python文件字符串转列表时遇到空行的问题
2017/07/09 Python
python实现决策树ID3算法的示例代码
2018/05/30 Python
解决pycharm运行出错,代码正确结果不显示的问题
2018/11/30 Python
python实现两个文件夹的同步
2019/08/29 Python
基于python实现matlab filter函数过程详解
2020/06/08 Python
将时尚融入珠宝:Adornmonde
2019/10/17 全球购物
汽车电子与维修专业大学生求职信
2013/09/28 职场文书
程序员求职信
2014/04/16 职场文书
运动会演讲稿200字
2014/08/25 职场文书
2014年扫黄打非工作总结
2014/12/03 职场文书
个人工作违纪检讨书
2015/05/05 职场文书
为自己工作观后感
2015/06/11 职场文书
2016元旦主持人开场白
2015/12/03 职场文书
JavaWeb 入门:Hello Servlet
2021/07/16 Java/Android
Python list列表删除元素的4种方法
2021/11/01 Python
vue el-table实现递归嵌套的示例代码
2022/08/14 Vue.js