基于python实现简单C/S模式代码实例


Posted in Python onSeptember 14, 2020

C/S模式就是指客bai户端/服务器模式,du是计算机软件协同工作的一种模式。zhi

由于Web浏览器的兴起,B/S模式逐步取代了daoC/S模式,被更广泛地应用。随着计算机网络技术的成熟和应用普及,特别是局域网的发展、PC机的出现,越来越多的用户和企业开始使用计算机管理一些事务。

PC机的资源没有大型、中型甚至小型主机丰富,但将多台PC机联成网,必然会增加资源含量,各个用户都在网络上来共享所有资源。根据客户/服务器(Client/Server简记为C/S)体系结构的概念,至少用两台计算机来分别充当客户机和服务器角色。

服务器端代码:

#!/usr/bin/python

import time, socket, threading

# thread handle function
def tcplink(sock, addr):
  print 'Accept new connection from %s:%s...' % addr
  sock.send('Welcome!')
  while True:
    data = sock.recv(1024)
    time.sleep(1)
    if data == 'exit' or not data:
      break
    sock.send('Hello, %s!' % data)
  sock.close()
  print 'Connection from %s:%s closed.' % addr

# create socket object
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# listen port
s.bind(('127.0.0.1', 9999))
# start listen
s.listen(5)
# print prompt
print 'Waiting for connection...'

while True:
  # accept a new connection
  sock, addr = s.accept()
  # create new thread to handle tcp connection
  t = threading.Thread(target=tcplink, args=(sock, addr))
  t.start()

客户端代码:

#!/usr/bin/python

# import module
import socket

# create TCP object
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# connect sina
s.connect(('127.0.0.1', 9999))
# receive welcome
print s.recv(1024)

for data in ['zjw', 'ygl', 'lele']:
  # send data
  s.send(data)
  print s.recv(1024)
while True:
  data = 1

设计思路还是那样的,服务器端监听固定端口,等待连接,客户端来连接,然后互相发送消息

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程
Nov 18 Python
python下paramiko模块实现ssh连接登录Linux服务器
Jun 03 Python
python中list常用操作实例详解
Jun 03 Python
Fabric 应用案例
Aug 28 Python
[原创]python爬虫(入门教程、视频教程)
Jan 08 Python
解决新django中的path不能使用正则表达式的问题
Dec 18 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
Sep 10 Python
Python中类似于jquery的pyquery库用法分析
Dec 02 Python
python使用SQLAlchemy操作MySQL
Jan 02 Python
python 项目目录结构设置
Feb 14 Python
python中watchdog文件监控与检测上传功能
Oct 30 Python
python 实现德洛内三角剖分的操作
Apr 22 Python
Elasticsearch py客户端库安装及使用方法解析
Sep 14 #Python
基于python实现简单网页服务器代码实例
Sep 14 #Python
用python绘制樱花树
Oct 09 #Python
Python logging日志库空间不足问题解决
Sep 14 #Python
Python grpc超时机制代码示例
Sep 14 #Python
python/golang 删除链表中的元素
Sep 14 #Python
Python基于pillow库实现生成图片水印
Sep 14 #Python
You might like
多重?l件?合查?(一)
2006/10/09 PHP
图书管理程序(一)
2006/10/09 PHP
加速XP搜索功能堪比vista
2007/03/22 PHP
超小PHP小马小结(方便查找后门的朋友)
2012/05/05 PHP
Yii配置文件用法详解
2014/12/04 PHP
谈谈从phpinfo中能获取哪些值得注意的信息
2017/03/28 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
php屏蔽错误及提示的方法
2020/05/10 PHP
无缝滚动js代码通俗易懂(自写)
2013/06/19 Javascript
JavaScript中按位“异或”运算符使用介绍
2014/03/14 Javascript
JQuery选择器、过滤器大整理
2015/05/26 Javascript
angularjs学习笔记之完整的项目结构
2015/09/26 Javascript
浅析JavaScript访问对象属性和方法及区别
2015/11/16 Javascript
深入浅析Extjs中store分组功能的使用方法
2016/04/20 Javascript
JS实现类似51job上的地区选择效果示例
2016/11/17 Javascript
Javascript 实现放大镜效果实例详解
2016/12/03 Javascript
文章或博客自动生成章节目录索引(支持三级)的实现代码
2020/05/10 Javascript
python通过socket查询whois的方法
2015/07/18 Python
Python线性回归实战分析
2018/02/01 Python
Python学习笔记之迭代器和生成器用法实例详解
2019/08/08 Python
Python3实现配置文件差异对比脚本
2019/11/18 Python
python入门之井字棋小游戏
2020/03/05 Python
详解python环境安装selenium和手动下载安装selenium的方法
2020/03/17 Python
分享一个H5原生form表单的checkbox特效代码
2018/02/26 HTML / CSS
H5 meta小结(前端必看篇)
2016/08/24 HTML / CSS
The Hut德国站点:时装、家居用品、美容等
2016/09/23 全球购物
ALDO英国官网:加拿大女鞋品牌
2018/02/19 全球购物
意大利体育用品和运动服网上商店:Maxi Sport
2019/09/14 全球购物
加拿大领先家居家具网上购物:Aosom.ca
2020/05/27 全球购物
Java面试题:说出如下代码的执行结果
2015/10/30 面试题
美丽家庭事迹材料
2014/05/03 职场文书
爱的奉献演讲稿
2014/09/10 职场文书
中国式结婚:司仪主持词(范文)
2019/07/25 职场文书
Python实现单例模式的5种方法
2021/06/15 Python
Python学习开发之图形用户界面详解
2021/08/23 Python
MySQL transaction事务安全示例讲解
2022/06/21 MySQL