基于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变量与常量
Jun 02 Python
fastcgi文件读取漏洞之python扫描脚本
Apr 23 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
Jun 01 Python
Python hashlib模块用法实例分析
Jun 12 Python
pyQt4实现俄罗斯方块游戏
Jun 26 Python
浅谈django orm 优化
Aug 18 Python
python3对拉勾数据进行可视化分析的方法详解
Apr 03 Python
python实现随机漫步方法和原理
Jun 10 Python
使用python画社交网络图实例代码
Jul 10 Python
浅谈django url请求与数据库连接池的共享问题
Aug 29 Python
python返回数组的索引实例
Nov 28 Python
Python爬虫入门有哪些基础知识点
Jun 02 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
Smarty3配置及入门语法
2017/02/22 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
PHP获取链表中倒数第K个节点的方法
2018/01/18 PHP
JQuery获取元素文档大小、偏移和位置和滚动条位置的方法集合
2010/01/12 Javascript
跨浏览器的 mouseenter mouseleave 以及 compareDocumentPosition的使用说明
2010/05/04 Javascript
为radio类型的INPUT添加客户端脚本(附加实现JS来禁用onClick事件思路代码)
2010/11/11 Javascript
JS取得绝对路径的实现代码
2015/01/16 Javascript
理解javascript中的原型和原型链
2015/07/30 Javascript
Bootstrap每天必学之导航条
2015/11/27 Javascript
Jquery跨浏览器文本复制插件Zero Clipboard的使用方法
2016/02/28 Javascript
jQuery实现百叶窗焦点图动画效果代码分享(附源码下载)
2016/03/14 Javascript
JS/jQ实现免费获取手机验证码倒计时效果
2016/06/13 Javascript
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
2017/08/01 jQuery
详解jquery选择器的原理
2017/08/01 jQuery
利用Javascript获取选择文本所在的句子详解
2017/12/03 Javascript
编写更好的JavaScript条件式和匹配条件的技巧(小结)
2019/06/27 Javascript
layer.js open 隐藏滚动条的例子
2019/09/05 Javascript
JS控制GIF图片的停止与显示
2019/10/24 Javascript
Vue实现手机扫描二维码预览页面效果
2020/05/28 Javascript
[51:52]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
jupyter notebook引用from pyecharts.charts import Bar运行报错
2020/04/23 Python
Python读取数据集并消除数据中的空行方法
2018/07/12 Python
python内置函数sorted()用法深入分析
2019/10/08 Python
Python任务自动化工具tox使用教程
2020/03/17 Python
python从PDF中提取数据的示例
2020/10/30 Python
详解基于 Canvas 手撸一个六边形能力图
2019/09/02 HTML / CSS
英国时尚家具、家居饰品及礼品商店:Graham & Green
2016/09/15 全球购物
薇诺娜官方网上商城:专注敏感肌肤
2017/05/25 全球购物
西班牙自行车和跑步商店:Alltricks
2018/07/07 全球购物
《雷鸣电闪波尔卡》教学反思
2014/02/23 职场文书
湖南省召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
导游词之昭君岛
2020/01/17 职场文书
python 下划线的多种应用场景总结
2021/05/12 Python
Django与数据库交互的实现
2021/06/03 Python
Python实现的扫码工具居然这么好用!
2021/06/07 Python
CSS 实现磨砂玻璃(毛玻璃)效果样式
2023/05/21 HTML / CSS