Python中文
首页
教程
问答
标签
搜索
登录
注册
用python编写客户机-服务器程序?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>这是python中多线程服务器和客户端的源代码。</p> <p>在代码中,客户端和服务器在作业完成后关闭连接。 我想让连接保持活动状态,并通过同一个连接向<strong>发送更多数据,避免每次关闭和打开套接字时都会产生开销。</p> <p>以下代码来自:<a href="http://www.devshed.com/c/a/Python/Basic-Threading-in-Python/1/" rel="noreferrer">http://www.devshed.com/c/a/Python/Basic-Threading-in-Python/1/</a></p> <pre><code>import pickle import socket import threading # We'll pickle a list of numbers: someList = [ 1, 2, 7, 9, 0 ] pickledList = pickle.dumps ( someList ) # Our thread class: class ClientThread ( threading.Thread ): # Override Thread's __init__ method to accept the parameters needed: def __init__ ( self, channel, details ): self.channel = channel self.details = details threading.Thread.__init__ ( self ) def run ( self ): print 'Received connection:', self.details [ 0 ] self.channel.send ( pickledList ) for x in xrange ( 10 ): print self.channel.recv ( 1024 ) self.channel.close() print 'Closed connection:', self.details [ 0 ] # Set up the server: server = socket.socket ( socket.AF_INET, socket.SOCK_STREAM ) server.bind ( ( '', 2727 ) ) server.listen ( 5 ) # Have the server serve "forever": while True: channel, details = server.accept() ClientThread ( channel, details ).start() </code></pre> <hr/> <pre><code>import pickle import socket import threading # Here's our thread: class ConnectionThread ( threading.Thread ): def run ( self ): # Connect to the server: client = socket.socket ( socket.AF_INET, socket.SOCK_STREAM ) client.connect ( ( 'localhost', 2727 ) ) # Retrieve and unpickle the list object: print pickle.loads ( client.recv ( 1024 ) ) # Send some messages: for x in xrange ( 10 ): client.send ( 'Hey. ' + str ( x ) + '\n' ) # Close the connection client.close() # Let's spawn a few threads: for x in xrange ( 5 ): ConnectionThread().start() </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我不确定我是否理解这个问题,但如果您不想关闭连接,请不要调用<code>close()</code>。。。</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
使用Python创建一个非常大的二进制频率矩阵来运行协作过滤
8 回答
使用Python创建一张HTML网页,其中在不同颜色中重复n遍显示“Hello World”的方法
6 回答
使用Python创建一组唯一的值length L
3 回答
使用python创建不同表格的透视表
3 回答
使用python创建不和谐频道
10 回答
使用python创建不存在的多个文件夹
10 回答
使用python创建串行远程文件
1 回答
使用python创建交互式仪表板时出现问题
2 回答
使用python创建交互式绘图
9 回答
使用python创建交互式自动电子邮件
2 回答
使用Python创建价格列表
3 回答
使用python创建修改的txt文件
9 回答
使用Python创建全局变量,初始化后更改值
9 回答
使用Python创建关键字搜索词数组
2 回答
使用Python创建具有不均匀块大小/堆叠条形图的热图
9 回答
使用Python创建具有依赖于另一列的值的列
5 回答
使用Python创建具有多列的HTML表
4 回答
使用Python创建具有时间范围数据的等距数据帧
1 回答
使用Python创建具有特定顺序或属性的XML文件
6 回答
使用Python创建具有级联功能的搜索栏
2 回答