python tcp服务器_python实现TCP服务器端与客户端的方法详解

本文实例讲述了python实现TCP服务器端与客户端的方法。分享给大家供大家参考。具体如下:

TCP服务器程序(tsTserv.py):

from socket import *

from time import ctime

HOST = ''

PORT = 21567

BUFSIZ = 1024

ADDR = (HOST, PORT)

tcpSerSock = socket(AF_INET, SOCK_STREAM)

tcpSerSock.bind(ADDR)

tcpSerSock.listen(5)

while True:

print 'waiting for connection...'

tcpCliSock, addr = tcpSerSock.accept()

print '...connected from:', addr

while True:

data = tcpCliSock.recv(BUFSIZ)

if not data:

break

tcpCliSock.send('[%s] %s' %(ctime(), data))

tcpCliSock.close()

tcpSerSock.close()

TCP客户端程序(tsTclnt.py):

from socket import *

HOST = 'localhost'

PORT = 21567

BUFSIZ = 1024

ADDR = (HOST, PORT)

tcpCliSock = socket(AF_INET, SOCK_STREAM)

tcpCliSock.connect(ADDR)

while True:

data = raw_input('> ')

if not data:

break

tcpCliSock.send(data)

data1 = tcpCliSock.recv(BUFSIZ)

if not data1:

break

print data1

tcpCliSock.close()

运行说明:先运行服务器程序,作用类似于打开服务器保持等待客户请求,再运行客户端程序。

运行界面如下:

服务器端:

D:\code\ex>python tsTserv.py

waiting for connection...

...connected from: ('127.0.0.1', 2883)

waiting for connection...

...connected from: ('127.0.0.1', 2885)

waiting for connection...

...connected from: ('127.0.0.1', 2889)

waiting for connection...

...connected from: ('127.0.0.1', 2891)

waiting for connection...

...connected from: ('127.0.0.1', 2892)

waiting for connection...

...connected from: ('127.0.0.1', 2893)

waiting for connection...

客户端:

D:\code\ex>python tsTclnt.py

> 1

[Thu Feb 02 15:52:21 2012] 1

> 2

[Thu Feb 02 15:52:22 2012] 2

> 3

[Thu Feb 02 15:52:22 2012] 3

> 5

[Thu Feb 02 15:52:23 2012] 5

> 6

[Thu Feb 02 15:52:24 2012] 6

>

D:\code\ex>

希望本文所述对大家的Python程序设计有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/244763.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

入Java_初入Java的方法

Java的方法类似于其他语言如C中的函数,比如我们第一个Java程序 输出Hello,world!中用到一个方法System.out.printfln();这里的printfln()就是一个方法,System是系统类,out是对象。1.什么是方法?方法是语句…

java method_JAVA Method的解析

java.lang.reflect.MethodMethodpublic final class Method extends Executable数据的层级结构Paste_Image.pngMethod中的方法boolean [equals].将此方法与指定的对象进行比较T extends [Annotation]T [getAnnotation]如果存在注释,则返回指定类型的注释否则返回为n…

java中this_多学习才能多赚钱之:java中this什么用

java中this什么用1、this调用当前属性:其主要作用是当需要给类中的数据进行初始化时,可以通过this来进行赋值,而不用随便定义一个变量来进行赋值,更有利于代码的阅读与理解(推荐教程:java教程)class Book{//定义书的类…

java api 英文_教你查阅Java API 英文文档(JDK 11)

然后找到“Specifications”并点击 API Documentation比如我们在别人的源码里看到了方法[也叫函数]: Scanner input new Scanner(System.in);所以搜索一下右上角 Scanner,对比我们看到的源码里import,发现是java.util包里的,所以…

jedis使用_Redis --Java客户端 Jedis

Redis --Java客户端 Jedis 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 简介 Jedis: 一款java操作redis数据库的工具. 菜鸟教程文档地址 使用…

java jolt tuxedo_java使用jolt调用tuxedo服务

使用包jolt-1.0import bea.jolt.JoltSession;import bea.jolt.JoltSessionAttributes;import bea.jolt.SessionException;简单示例JoltSession jsession;JoltSessionAttributes sattr;JoltRemoteService joltRemoteService;JoltTransaction trans;String userName "A…

找出最具竞争力的子序列_力扣300——最长上升子序列

这道题主要涉及动态规划,优化时可以考虑贪心算法和二分查找。原题给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。说明:可能会有多种最…

java 跨站点脚本编制_AppScan跨站点脚本编制修复

查了下百度,跨站点脚本编制其实也就是在url后加入参数和js脚本实现一些坏坏的事情,至少appscan就是这么干的。那么主要的工作就是把恶意代码给过滤了,作为javaweb开发,明显第一步想到的是过滤器。网上很多都是将request对象 传入H…

python怎么安装本地的egg_python egg怎么安装

经常接触Python的同学可能会注意到,当需要安装第三方python包时,可能会用到easy_install命令。easy_install是由PEAK(Python Enterprise Application Kit)开发的setuptools包里带的一个命令,它用来安装egg包。egg包是目前最流行的python应用打…

java 动态字符串_Java动态编译执行一串字符串,类似于Javascript里的eval函数

Javascript里的eval函数能动态执行一串js脚本。那Java里怎么做到呢。有两种方法:一种是使用可以执行js脚本的Java类 ScriptEngineManagerpublic static void main(String args[]){ScriptEngineManager manager new ScriptEngineManager();ScriptEngine se manager.getEngineB…

jquery全局变量_jQuery源码一个小细节,却很好地体现了性能优化的思想,很优秀...

写在前面听闻大佬们在写一些框架或者库的时候,到处都隐藏了一些细节,所以阅读他们的源代码,无论从性能优化、还是JS API的学习、亦或是代码风格等方面给到我们很多启发。这两天我翻看了一下jQuery1.x的源代码,看到了这么一段&…

java connection 共享_java 使用HttpURLConnection发送数据简单实例

java 使用HttpURLConnection发送数据简单实例每个 HttpURLConnection 实例都可用于生成单个请求,但是其他实例可以透明地共享连接到 HTTP 服务器的基础网络。请求后在 HttpURLConnection 的 InputStream 或 OutputStream 上调用 close() 方法可以释放与此实例关联的…

mockito mock void方法_Spock如何模拟抽象类方法

我们平时写单元测试时经常会遇到调用抽象类或父类的方法,这些抽象方法可能是调用底层接口或数据库,需要mock掉,让抽象方法返回一个我们指定的值,以便测试当前代码逻辑的场景。下面讲下Spock如何结合power mock实现动态mock抽象方法…

new 实例化对象是啥意思_二. 初步认识JS中的类和对象

1 构造函数的定义在JS中, 没有类(class)的概念, 主要是通过构造函数来模拟的.语法function 构造函数名 () {// 函数体}使用function关键字表示定义一个构造函数构造函数名一般首字母大写示例function Person() {}通过以上方式就可以定义一个Person构造函数, 相当于定义好了一个…

java get 空指针_Java 中空指针处理方法

空指针异常(Null Pointer Exception)是我们平时最容易碰到的,也是最令人讨厌的异常。本文介绍如何避免出现空指针异常。首先我们看如下的示例:private Boolean isFinished(String status) {if (status.equalsIgnoreCase("Finish")) {return Bo…

正则匹配问号_爬虫之正则表达式

1什么是正则表达式正则表达式,也称规则表达式(Regular Expression,在代码中常简写为RE)。2为什么使用用来匹配、替换一类具有相同规则字符串3使用规则3.1单字符:3.2数量修饰:3.3边界:3.4分组:3.…

java farm tycoon_Idle Farm Tycoon

详情Have you always wanted to run your own farm? Now you can fulfill your dream!To start things off, begin with a few wheat farms. Once the first money is rolling, you can purchase new crops, bushes, trees and animals!Dont be afraid of running out of spac…

java treeset subset_Java中TreeSet的详细用法

第1部分 TreeSet介绍TreeSet简介TreeSet 是一个有序的集合,它的作用是提供有序的Set集合。它继承于AbstractSet抽象类,实现了NavigableSet, Cloneable, java.io.Serializable接口。TreeSet 继承于AbstractSet,所以它是一个Set集合&#xff0c…

sql执行有时候快有时候慢_如何让你的 SQL 执行的飞起?

OR 不能瞎用午饭间的小 C,答应着一起吃饭,却眼不离屏。我知道准是上午人甲产品经理又来了一个脏活。话说 SQL 程序员本身是个光荣的职业,顷刻间百万数据、百亿金额从指间流过,心都不带咯噔的。在心如止水的 SQL 编码师眼里&#x…

binaryformatter java_Java,C#使用二进制序列化、反序列化操作数据

java使用二进制序列化、反序列化的操作首先,要引入java.io下面相关包,或者直接写import java.io.*;下面,为了书写操作的方便,采用复制文件,和throws声明异常的方式来写public void test6() throws IOException {byte[]…