`
liudeh_009
  • 浏览: 239636 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

学习python后写的关于网络编程,线程的例子

阅读更多
该例子综合了python的网络编程,线程,异常处理,字符串处理,函数,类,做为入门级的例子,很
实用

服务器端server.py
#coding=utf-8
import socket
import threading
from time import sleep

class ThreadClass(threading.Thread):
  def setClient(self,client):
     self.client = client

  def run(self):
     print('threadname-->',self.getName())
     s = self.client.recv(1024).decode('utf-8')
     try:
       s = eval(s)
       s = str(s)
     except NameError:
       pass
     s = 'server deal result:' + s + "\n"
     self.client.send(s.encode('utf-8'))
     self.client.close()

if __name__=='__main__':
   s = socket.socket()
   host = socket.gethostname()
   port = 1234
   s.bind((host,port))
   #最多同时连5个客户端
   s.listen(5)
   while True :
        client,addr = s.accept()
        threadclass = ThreadClass()
        threadclass.setClient(client)
        threadclass.start()
        #sleep(20)
        #if threadclass.isAlive():
           #print('alive')
        #else:
           #print("notAlive")

客户端client.py
#coding=utf-8
import socket

def sendSource(source):
    return source.encode('utf-8')

def recvSource(source):
    return source.decode('utf-8')

def dealSource(source):
    try:
        s = socket.socket()
        s.connect(('10.9.9.12',1234))
        s.send(sendSource(source))
#缓冲区1k
        print(recvSource(s.recv(1024)))
    except socket.timeout:
        print("timeout")
    finally:
        s.close()

if __name__=='__main__':
   while True:
      source = input("input your source:\n")
      if str.strip(source)=="quit":#退出
         quit()
      else:#交给服务器处理
         dealSource(source)


几点需要注意:
1.代码里有中文的话要指定#coding=utf-8
2.命令行输入的数据要去空格str.strip(source)
0
1
分享到:
评论

相关推荐

    PYTHON QT GUI快速编程 PYQT编程指南

    第一部分主要讲述Python基础知识,第二部分通过三个例子给出PyQt GUI应用程序的初步印象,第三部分深入讲述窗口部件布局、事件处理、窗口部件子类化、Qt图形架构和Qt的模型/视图等内容,第四部分介绍国际化、网络化...

    Python中尝试多线程编程的一个简明例子

    主要介绍了Python中尝试多线程编程的一个简明例子,由于GIL的存在,Python中的多线程编程一个是热点和难点问题,需要的朋友可以参考下

    《PYTHON QT GUI快速编程 PYQT编程指南》高清完整PDF版下载

    第一部分主要讲述Python基础知识,第二部分通过三个例子给出PyQt GUI应用程序的初步印象,第三部分深入讲述窗口部件布局、事件处理、窗口部件子类化、Qt图形架构和Qt的模型/视图等内容,第四部分介绍国际化、网络化...

    Python多线程编程之多线程加锁操作示例

    本文实例讲述了Python多线程编程之多线程加锁操作。分享给大家供大家参考,具体如下: Python语言本身是支持多线程的,不像PHP语言。 下面的例子是多个线程做同一批任务,任务总是有task_num个,每次线程做一个任务...

    Python线程的两种编程方式

    举两个简单的例子希望起到抛砖引玉的作用,关于多线程编程的其他知识例如互斥、信号量、临界区等请参考python的文档及相关资料。 1、调用thread模块中的start_new_thread()函数来产生新的线程,请看代码: 复制代码 ...

    Python Qt GUI快速编程——PyQt编程指南 中文pdf高清索引版

    第一部分主要讲述Python基础知识,第二部分通过三个例子给出PyQt GUI应用程序的初步印象,第三部分深入讲述窗口部件布局、事件处理、窗口部件子类化、Qt图形架构和Qt的模型/视图等内容,第四部分介绍国际化、网络化...

    Python编程入门经典

    第16章 网络编程 269 16.1 理解协议 271 16.1.1 比较协议和程序语言 271 16.1.2 Internet协议栈 272 16.1.3 Internet协议简介 273 16.2 发送电子邮件 274 16.2.1 E-mail文件格式 275 16.2.2 MIME消息 276 16.2.3 ...

    Python核心编程第二版

    很不错的python书 第1部分 Python核心  第1章 欢迎来到Python世界   1.1 什么是Python   1.2 起源   1.3 特点   1.3.1 高级   1.3.2 面向对象   1.3.3 可升级   1.3.4 可扩展   1.3.5 可...

    动手学习 Python,涵盖基础,高级,面向对象,多线程,数据库,数据科学,Flask,爬虫

    Python实用教程,包括:Python基础,Python高级特性,面向对象编程,多线程,数据库,数据科学,Flask,爬虫开发教程。 1. 建议使用Anaconda,Python环境和包一键装好,Python3.7 版本,将zip文件,解压到电脑 2. ...

    Python开发技术详解

    python的安装和环境配置、python的基本语法、模块和函数、内置数据结构、字符串和文件的处理、正则表达式的使用、异常的捕获和处理、面向对象的语言特性和设计、python的数据库编程、wxpython库的使用、html应用、...

    深入学习python中的并发(一)---线程

    因此虽然学习的是Python中如何进行多线程编程,其实本质上是语言无关的。 talk is cheap. 我们先通过2个具体的例子来分析和理解python中的多线程编程。 1.实现2个线程交替打印奇偶数 2.实现一个支持并发使用

    python 多thread编程

    在python中多线程编程,通过简单的例子能很快的让你学会多线程编程....

    PYTHON QT GUI快速编程 PYQT编程指南_扫描版及源码

    第一部分主要讲述Python基础知识,第二部分通过三个例子给出PyQt GUI应用程序的初步印象,第三部分深入讲述窗口部件布局、事件处理、窗口部件子类化、Qt图形架构和Qt的模型/视图等内容,第四部分介绍国际化、网络化...

    Python3中多线程编程的队列运作示例

    主要介绍了Python3中多线程编程的队列运作示例,文中用一个简单的例子展示了Python下尝试多线程时队列的进站出站是如何运作的,需要的朋友可以参考下

    《Python编程金典》读书笔记

    python编程概述 2.1. 知识点 2.2. 良好的编程习惯 2.3. 常见编程错误 2.4. 测试和调试提示 2.5. 移植性提示 3. 控制流程 3.1. 知识点 3.2. 良好的编程习惯 3.3. 常见编程错误 3.4. 移植性提示 3.5. 软件...

Global site tag (gtag.js) - Google Analytics