基于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 相关文章推荐
python zip文件 压缩
Dec 24 Python
go和python调用其它程序并得到程序输出
Feb 10 Python
在Django框架中编写Contact表单的教程
Jul 17 Python
实例解析Python的Twisted框架中Deferred对象的用法
May 25 Python
Python OpenCV处理图像之图像直方图和反向投影
Jul 10 Python
python如何实现代码检查
Jun 28 Python
python实现数据分析与建模
Jul 11 Python
python批量处理文件或文件夹
Jul 28 Python
python可视化实现KNN算法
Oct 16 Python
Python通过Manager方式实现多个无关联进程共享数据的实现
Nov 07 Python
使用Pycharm分段执行代码
Apr 15 Python
Python 装饰器(decorator)常用的创建方式及解析
Apr 24 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
php 缩略图实现函数代码
2011/06/23 PHP
JSON在PHP中的应用介绍
2012/09/08 PHP
图文介绍PHP添加Redis模块及连接
2015/07/28 PHP
PHP中for循环与foreach的区别
2017/03/06 PHP
Laravel框架实现的使用smtp发送邮件功能示例
2019/03/12 PHP
40款非常棒的jQuery 插件和制作教程(系列一)
2011/10/26 Javascript
在jQuery中 关于json空对象筛选替换
2013/04/15 Javascript
jquery判断元素的子元素是否存在的示例代码
2014/02/04 Javascript
jQuery获取和设置表单元素的方法
2014/02/14 Javascript
seajs中模块的解析规则详解和模块使用总结
2014/03/12 Javascript
js实现div弹出层的方法
2014/11/20 Javascript
5种处理js跨域问题方法汇总
2014/12/04 Javascript
Jil,高效的json序列化和反序列化库
2017/02/15 Javascript
jQuery插件echarts去掉垂直网格线用法示例
2017/03/03 Javascript
vuex 解决报错this.$store.commit is not a function的方法
2018/12/17 Javascript
JS实现提示效果弹出及延迟隐藏的功能
2019/08/26 Javascript
p5.js绘制旋转的正方形
2019/10/23 Javascript
基于vue实现简易打地鼠游戏
2020/08/21 Javascript
[33:42]LGD vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[原创]python爬虫(入门教程、视频教程)
2018/01/08 Python
Python静态类型检查新工具之pyright 使用指南
2019/04/26 Python
python安装本地whl的实例步骤
2019/10/12 Python
centos7中安装python3.6.4的教程
2019/12/11 Python
pytorch如何冻结某层参数的实现
2020/01/10 Python
python绘制高斯曲线
2021/02/19 Python
美国在线眼镜商城:Eyeglasses.com
2017/06/26 全球购物
PHP如何对用户密码进行加密
2014/07/31 面试题
Does C# support multiple inheritance? (C#支持多重继承吗)
2012/01/04 面试题
测试驱动开发的主要步骤是什么
2014/12/10 面试题
《荷花》教学反思
2014/04/16 职场文书
创业培训计划书
2014/05/03 职场文书
党旗在我心中演讲稿
2014/09/15 职场文书
2015年党小组工作总结
2015/05/26 职场文书
大学生安全教育主题班会
2015/08/12 职场文书
2019同学聚会主持词
2019/05/06 职场文书
《最后一头战象》读后感:动物也有感情
2020/01/02 职场文书