基于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中的面向对象编程的概念
Apr 27 Python
Python中的zipfile模块使用详解
Jun 25 Python
Python实现优先级队列结构的方法详解
Jun 02 Python
一张图带我们入门Python基础教程
Feb 05 Python
Python创建xml文件示例
Mar 22 Python
Python实现识别手写数字 Python图片读入与处理
Mar 23 Python
python删除文本中行数标签的方法
May 31 Python
使用pandas对两个dataframe进行join的实例
Jun 08 Python
Python实现一个数组除以一个数的例子
Jul 20 Python
python从list列表中选出一个数和其对应的坐标方法
Jul 20 Python
Python map及filter函数使用方法解析
Aug 06 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
Oct 20 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作的文本留言本的例子(三)
2006/10/09 PHP
PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
2012/04/09 PHP
PHP CLI模式下的多进程应用分析
2013/06/03 PHP
php 启动报错如何解决
2014/01/17 PHP
destoon整合UCenter图文教程
2014/06/21 PHP
PHP模板引擎Smarty中的保留变量用法分析
2016/04/11 PHP
PHP中include/require/include_once/require_once使用心得
2016/08/28 PHP
php异步:在php中使用fsockopen curl实现类似异步处理的功能方法
2016/12/10 PHP
PHP实现向关联数组指定的Key之前插入元素的方法
2017/06/06 PHP
JavaScript基本对象
2007/01/11 Javascript
html+js实现动态显示本地时间
2013/09/21 Javascript
IE下Ajax缓存问题的快速解决方法(get方式)
2014/01/09 Javascript
浅谈js中的闭包
2015/03/16 Javascript
JS实现选中当前菜单后高亮显示的导航条效果
2015/10/15 Javascript
基于javascript代码检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统
2015/12/03 Javascript
常用的js方法合集
2017/03/10 Javascript
Js利用prototype自定义数组方法示例
2017/10/20 Javascript
基于AngularJS拖拽插件ngDraggable.js实现拖拽排序功能
2019/04/02 Javascript
JS实现移动端点击按钮复制文本内容
2019/07/28 Javascript
Vue根据条件添加click事件的方式
2019/11/09 Javascript
javascript 数组精简技巧小结
2020/02/26 Javascript
浅谈vue单页面中有多个echarts图表时的公用代码写法
2020/07/19 Javascript
微信小程序抽奖组件的使用步骤
2021/01/11 Javascript
[46:09]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第三场
2014/05/26 DOTA
Python使用urllib2模块实现断点续传下载的方法
2015/06/17 Python
wxPython实现带颜色的进度条
2019/11/19 Python
keras做CNN的训练误差loss的下降操作
2020/06/22 Python
Python 生成短8位唯一id实战教程
2021/01/13 Python
HTML5里的placeholder属性使用实例和美化显示效果的方法
2014/04/23 HTML / CSS
美国顶尖折扣时尚购物网:Bluefly
2016/08/28 全球购物
求职简历中个人的自我评价
2013/12/01 职场文书
小学生考试获奖感言
2014/01/30 职场文书
外国人聘用意向书
2014/04/01 职场文书
企业三严三实学习心得体会
2014/10/13 职场文书
合作合同协议书范本
2015/01/27 职场文书
导游词之上海杜莎夫人蜡像馆
2019/11/22 职场文书