python简单C/S模式示例

服务器端代码:

 1 #!/usr/bin/python
 2
 3 import time, socket, threading
 4
 5 # thread handle function
 6 def tcplink(sock, addr):
 7     print ‘Accept new connection from %s:%s...‘ % addr
 8     sock.send(‘Welcome!‘)
 9     while True:
10         data = sock.recv(1024)
11         time.sleep(1)
12         if data == ‘exit‘ or not data:
13             break
14         sock.send(‘Hello, %s!‘ % data)
15     sock.close()
16     print ‘Connection from %s:%s closed.‘ % addr
17
18 # create socket object
19 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
20 # listen port
21 s.bind((‘127.0.0.1‘, 9999))
22 # start listen
23 s.listen(5)
24 # print prompt
25 print ‘Waiting for connection...‘
26
27 while True:
28     # accept a new connection
29     sock, addr = s.accept()
30     # create new thread to handle tcp connection
31     t = threading.Thread(target=tcplink, args=(sock, addr))
32     t.start()
33
34     

客户端代码:

 1 #!/usr/bin/python
 2
 3 # import module
 4 import socket
 5
 6 # create TCP object
 7 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 8 # connect sina
 9 s.connect((‘127.0.0.1‘, 9999))
10 # receive welcome
11 print s.recv(1024)
12
13 for data in [‘zjw‘, ‘ygl‘, ‘lele‘]:
14     # send data
15     s.send(data)
16     print s.recv(1024)
17 while True:
18     data = 1

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

时间: 2024-10-25 21:00:31

python简单C/S模式示例的相关文章

Python简单操作笔记

Python 类型转换 str(),repr()|format() : 将非字符类型转成子串 int() : 转为整形 float() : 转为浮点型 list(s) : 将字串s转成列表 tuple(s) : 将字串s转成元组 set(s) : 将字串s转成集合 frozenset(s) : 将字串s转成不可变集合 dict(s) : 创建字典 其d必须是(key,value)的元组序列; chr(x) : 将整形转成字符 ord(x) : 将字符转成整形 hex(x) : 将整形转换成16进

Python设计模式——工厂方法模式(FactoryMethod)

需求:有一个学雷锋活动,有买米和扫地两个内容,参与的人有大学生和社区志愿者,他们各自的方法不一样. 如果用简单工厂模式实现: #encoding=utf-8 __author__ = '[email protected]' class LeiFeng(): def buy_rice(self): pass def sweep(self): pass class Student(LeiFeng): def buy_rice(self): print '大学生帮你买米' def sweep(self

python机器登陆新浪微博代码示例

前段时间开始学习Python,一直想不到有什么好的小项目可以做,憋得慌,这不, 绞尽脑汁想出了一个爬取新浪微博,并对爬取数据做简单统计的项目.一开始我自以为学习了点Python正则就可以搞定了,熟料在机器登陆上栽了跟头,从完全一头雾水到现在初步登陆获取到数据,整整历经了四五天.因为之前没搞过机器登陆方面的代码,所以这次项目的初步完成完全归功于网上的一些大神,我只是拾人牙慧,拼凑了几个大神的代码,另外加几行注释而已. # import 这边需要注意的是只有一个rsa这个模块是需要install的,

PowerShell DSC(一)简单的推模式

最近因为公司业务需要一直在学习开源平台的内容,比如OpenStack和Docker等等,看着看着就对puppet和chef产生了一些兴趣,随之顺其自然的就发现其实在Windows平台也有自己原生的自动化运维解决方案,它就是PowerShell DSC(desired state configuration),按照字面理解就是"期望的配置状态",我本人对puppet和chef没有太多深入的研究,但是对比了一下两者与PowerShell DSC的实现机制发现的确是大同小异,在此也不讨论谁先

Python Socket 编程——聊天室示例程序

原文:Python Socket 编程--聊天室示例程序 上一篇 我们学习了简单的 Python TCP Socket 编程,通过分别写服务端和客户端的代码了解基本的 Python Socket 编程模型.本文再通过一个例子来加强一下对 Socket 编程的理解. 聊天室程序需求 我们要实现的是简单的聊天室的例子,就是允许多个人同时一起聊天,每个人发送的消息所有人都能接收到,类似于 QQ 群的功能,而不是点对点的 QQ 好友之间的聊天.如下图: 图来自:http://www.ibm.com/de

Python简单爬虫第六蛋!(完结撒花)

第六讲: 今天我们来实战一个项目,我本人比较喜欢看小说,有一部小时叫<圣墟>不知道大家有没有听说过,个人觉得还是不错的,现在联网的时候,都可以随时随地用手机打开浏览器搜索查看,但是有时候也会遇到没有网络的情况,这个就很扎心了,有什么办法呢?所以这个项目基于这么一个现实背景来分析实现一下,把我们前几次讲到一些技术方法都运用一遍. (有人可能会说直接下载一个txt格式的小说文本文件不就好了,虽然是挺方便的,但是懒惰是不好的习惯,而且也没有运用到所学的知识,那么我们何必要学习呢?为什么要学,看完实例

一个用python简单的封装了aria2的jsonrpc中adduri的脚本

aria2是一个十分牛逼的下载神器,有时候项目需要一个很牛逼的下载中间件的话,aria2是一个不错的选择.其中支持jsonrpc和websocket的特性尤其诱人.但是python用起来还是有点不爽,所以简单封装一下aria2的jsonrpc. 所以,用python简单的封装了aria2的jsonrpc中adduri的脚本. 使用起来非常简单,仅需要三行代码. from pyaria2 import Jsonrpc jsonrpc = Jsonrpc('localhost', 6800) res

【Python】python链表应用源码示例

python链表应用源码示例,需要用到python os模块方法.函数和类的应用. 首先,先简单的来了解下什么是链表?链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的. python链表应用源码示例如下: #-*-coding:utf8 -*- import os class Head_List: def __init__(self , id): self.id = id self.next = -1 self.length = 0 def s

Python open文件读写模式说明

对于Python打开文件的模式,总是记不住,这次在博客里记录一下 r+: Open for reading and writing.  The stream is positioned  at  the beginning of the file. w+:Open for reading and writing.  The file is created  if  it  does not  exist, otherwise it is truncated.  The stream is pos