Python基础教程之tcp socket编程详解及简单实例
Python tcp socket编程详解
初学脚本语言Python,测试可用的tcp通讯程序:
服务器:
#!/usr/bin/env python # -*- coding: utf-8 -*- import socket import threading import time def tcplink(sock, addr): print('Accept new connection from %s:%s...' % addr); sock.send(b'Welcome!!!'); while True: data = sock.recv(1024); time.sleep(1); if not data or data.decode('utf-8') == 'exit': break; sock.send(b'Hello, %s!' % data); sock.close(); print('Connection from %s:%s closed.' % addr); if __name__ == "__main__": s = socket.socket(socket.AF_INET, socket.SOCK_STREAM); s.bind(('127.0.0.1', 9090)); s.listen(8); #监听8个客户端; print('waiting for connection...'); while True: sock, addr = s.accept(); t = threading.Thread(target=tcplink, args=(sock,addr)); t.start();
客户端:
#!/usr/bin/env python # -*- coding: utf-8 -*- import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM); s.connect(('127.0.0.1', 9090)); print(s.recv(1024).decode('utf-8')); for data in [b'lk', b'aa', b'bb']: s.send(data); print(s.recv(1024).decode('utf-8')); s.send(b'exit'); s.close();
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关推荐
-
Python采用socket模拟TCP通讯的实现方法
本文实例讲述了Python采用socket模拟TCP通讯的实现方法.分享给大家供大家参考.具体实现方法如下: 对于TCP server端的创建而言,分为如下几个步骤: 创建socket对象(socket):其中两个参数分别为Address Family(如AF_INET为IPV4,AF_INET6为IPV6,AF_UNIX为UNIX域协议族).socket类型(如SOCK_STREAM为TCP,SOCK_DGRAM为UDP). 绑定服务器地址(bind):参数为服务器地址二元组. 监听(list
-
Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例
本文实例讲述了Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能.分享给大家供大家参考,具体如下: [吐槽] 网上的代码害死人,看着都写的言之凿凿,可运行就是有问题. 有些爱好代码.喜欢收藏代码的朋友,看到别人的代码就粘贴复制过来.可是起码你也试试运行看啊大哥 [正文] 昨日修改运行了UDP协议的C/S聊天程序,可是TCP协议的怎么都不行.各种试,各种坑. 做了下面几个修改后,终于可以了: 1.对发送.接收的信息,分别进行编码和解码 2.客户端的第10行bind改为c
-
Python socket网络编程TCP/IP服务器与客户端通信
Python socket网络编程 初学 python,前段时间买了两本书<python 编程从入门到实践><Python 核心编程第三版>,第一本书主要讲的是一些基本语法和一些基本的使用方法,而第二本则深入很多,自己看来也是一知半解,刚好看到了这部分网络编程,依然有好多不太理解的地方,不过想来通过自己不断的摸索,不断地搜寻资料学习,早晚应该会变得通透吧....... 这部分主要使用的模块就是 socket 模块,在这个模块中可以找到 socket()函数,该函数用于创建套接字对象
-
Python Socket实现简单TCP Server/client功能示例
本文实例讲述了Python Socket实现简单TCP Server/client功能.分享给大家供大家参考,具体如下: 网络上关于socket的介绍文章数不胜数.自己记录下学习的点点滴滴.以供将来复习学习使用. socket中文的翻译是套接字,总感觉词不达意.简单的理解就是ip+port形成的一个管理单元.也是程序中应用程序调用的接口. 在这里我们先介绍如何启动tcp 的server. tcp连接中server部分,启动一个ip和port口,在这个port口监听,当收到client发来的请求,
-
Python socket C/S结构的聊天室应用实现
Python socket C/S结构的聊天室应用 服务端: #!/usr/bin/env python #coding:utf8 import socket,select def broadcast_data (sock,message): for socket in conn_list: if socket != server_socket and socket != sock : try : socket.send(message) except : socket.close() conn
-
python网络编程之TCP通信实例和socketserver框架使用例子
1.TCP是一种面向连接的可靠地协议,在一方发送数据之前,必须在双方之间建立一个连接,建立的过程需要经过三次握手,通信完成后要拆除连接,需要经过四次握手,这是由TCP的半关闭造成的,一方在完成数据发送后要发送一个FIN来终止这个方向的连接,一个TCP连接在收到一个FIN后仍能发送数据,但应用程序很少这么做,下面是TCP连接建立和拆除的过程: 2.python可以实现TCP服务器和客户端的编程,下面是代码: 服务器端: 复制代码 代码如下: #!/usr/bin/env pythonimport
-
python socket多线程通讯实例分析(聊天室)
本文实例讲述了python socket多线程通讯方法.分享给大家供大家参考,具体如下: #!/usr/bin/evn python """ 这是一个Socket+多进程的例子(聊天服务端) """ import socket import threading # 处理中文数据用的 encoding = "GBK" def HKServer(client, addr): """ 与客户端时实通讯函
-
python3.5实现socket通讯示例(TCP)
TCP连接: tcp是面向连接的一个协议,意味着,客户端和服务器开发发送数据之前,需要先握手创建一个TCP连接.TCP连接的一端与客户端套接字相互联系,另一端与服务器套接字相联系.当创建该TCP连接的时,我们需要讲客户端与服务器的套接字地址(IP地址和端口号)关联起来.使用创建的TCP连接,当一侧要向另一侧发送数据的时候,它只需要经过其套接字将数据丢给TCP连接,不需要再次附上目的地址. 使用TCP连接的客户-服务器程序: TCPServer.py import socket import so
-
Python基于Socket实现的简单聊天程序示例
本文实例讲述了Python基于Socket实现的简单聊天程序.分享给大家供大家参考,具体如下: 需求:SCIENCE 和MOOD两个人软件专业出身,厌倦了大众化的聊天软件,想着自己开发一款简易的聊天软件,满足他们的个性化需求,又不失"专业水准",Talk is easy, try to code it. 技术:socket,详细可参考前文:Python Socket实现简单TCP Server/client功能 语言:python 尽管socket区分服务器和客户端,但是在聊天程序中两
-
Python基础教程之tcp socket编程详解及简单实例
Python tcp socket编程详解 初学脚本语言Python,测试可用的tcp通讯程序: 服务器: #!/usr/bin/env python # -*- coding: utf-8 -*- import socket import threading import time def tcplink(sock, addr): print('Accept new connection from %s:%s...' % addr); sock.send(b'Welcome!!!'); whi
-
python 网络编程详解及简单实例
python 网络编程详解 网络编程的专利权应该属于Unix,各个平台(如windows.Linux等).各门语言(C.C++.Python.Java等)所实现的符合自身特性的语法都大同小异.在我看来,懂得了Unix的socket网络编程,其他的形式的网络编程方法也就知道了.这句话说得还不太严谨.准确的应该说成懂得了socket编程的原理,网络编程也就知道了,不同之处就在于每个平台,每个语言都有自己专享的语法,我们直接灵活套用就行了. 下面是用python实现的最基本的网络编程的例子,即依托于客
-
MySQL基础教程之IN的用法详解
MySQL IN 语法 IN 运算符用于 WHERE 表达式中,以列表项的形式支持多个选择,语法如下: WHERE column IN (value1,value2,...) WHERE column NOT IN (value1,value2,...) 当 IN 前面加上 NOT 运算符时,表示与 IN 相反的意思,即不在这些列表项内选择. IN 使用实例 选取 uid 为 2.3.5 的用户数据: SELECT * FROM user WHERE uid IN (2,3,5) 返回查询结果如
-
Python基础教程之pytest参数化详解
目录 前言 源代码分析 装饰测试类 装饰测试函数 单个数据 一组数据 组合数据 标记用例 嵌套字典 增加测试结果可读性 总结 前言 上篇博文介绍过,pytest是目前比较成熟功能齐全的测试框架,使用率肯定也不断攀升.在实际 工作中,许多测试用例都是类似的重复,一个个写最后代码会显得很冗余.这里,我们来了解一下 @pytest.mark.parametrize装饰器,可以很好的解决上述问题. 源代码分析 def parametrize(self,argnames, argvalues, indir
-
Python Socket编程详解
背景 关于Python Socket编程,首先需要了解几个计算机网络的知识,通过以下的几个问题,有助于更好的理解Socket编程的意义,以及整个框架方面的知识: TCP和UDP协议本质上的区别? TCP协议,面向连接,可靠,基于字节流的传输层通信协议:UDP协议无连接,不可靠,基于数据包的传输层协议. TCP协议在建立连接的过程需要经历三次握手,断开连接则需要经历四次挥手,而这建立连接的过程增加了传输过程中的安全性. 而建立连接的过程则会消耗系统的资源,消耗更多的时间,而相比较UDP协议传输过程
-
Python基础教程之if判断,while循环,循环嵌套
if判断 判断的定义 如果条件满足,就做一件事:条件不满足,就做另一件事: 判断语句又被称为分支语句,有判断,才有分支: if判断语句基本语法 if语句格式: if 判断的条件: 条件成立后做的事 ... ... 代码缩进为一个tab键,或者四个空格,官方建议使用空格:但应注意,在python开发中,tab和空格不能混用! 判断年龄示例: # 判断是否成年,成年则可以进网吧 age = 19 if age>=18: print("你满了18岁,可以进网吧") i
-
python基础教程之csv格式文件的写入与读取
目录 csv的简单介绍 csv的写入 第一种写入方法(通过创建writer对象) 第二种写入方法(使用DictWriter可以使用字典的方式将数据写入) csv的读取 通过reader()读取 通过dictreader()读取 总结 csv的简单介绍 CSV (Comma Separated Values),即逗号分隔值(也称字符分隔值,因为分隔符可以不是逗号),是一种常用的文本格式,用以存储表格数据,包括数字或者字符.很多程序在处理数据时都会碰到csv这种格式的文件.python自带了csv模
-
Python基础教程之pip的安装和卸载
目录 一.pip的安装: 二.pip的卸载: 三.列出已安装的版本 1.pip list 2.pip freeze 四.换源安装 总结 一.pip的安装: win+R出现一下界面 然后输入cmd点击确定,出现以下界面,就可进行下载 以下是两种下载方法 1.普通安装:pip install 模板名 2.指定版本安装:pip install 模板名==版本 二.pip的卸载: pip uninstall 模板名 出现此界面,输入y确定卸载,输入n取消卸载 出现Successfully即卸载成功 三.
-
python基础教程之csv文件的写入与读取
目录 csv的简单介绍 csv的写入 第一种写入方法(通过创建writer对象) 第二种写入方法(使用DictWriter可以使用字典的方式将数据写入) csv的读取 通过reader()读取 通过dictreader()读取 总结 csv的简单介绍 CSV (Comma Separated Values),即逗号分隔值(也称字符分隔值,因为分隔符可以不是逗号),是一种常用的文本格式,用以存储表格数据,包括数字或者字符.很多程序在处理数据时都会碰到csv这种格式的文件.python自带了csv模
-
C#中的Socket编程详解
目录 一,网络基础 二,Socket 对象 SocketType ProtocolType AddressFamily 三,Bind() 绑定与 Connect() 连接 Bind() Connect() 四,Listen() 监听请求连接 和 Accept() 接收连接请求 Listen() Accept() 五,Receive() 与 Send() Receive() 参数 返回 Send() 六,释放资源 close() 七,IPAddress 和IPEndPoint IPAddress
随机推荐
- Windows Server 2016 MySQL数据库安装配置详细安装教程
- jquery 正整数数字校验正则表达式
- AngularJS在IE下取数据总是缓存问题的解决方法
- java对ArrayList排序代码示例
- iOS开发中Quartz2D绘图路径的使用以及条纹效果的实现
- ASP.NET网站实时显示时间的方法
- js实现背景图自适应窗口大小
- js格式化金额可选是否带千分位以及保留精度
- js 获取class的元素的方法 以及创建方法getElementsByClassName
- 基于BootstrapValidator的Form表单验证(24)
- PHP数组操作简单案例分析
- php程序之die调试法 快速解决错误
- ThinkPHP的MVC开发机制实例解析
- JavaScript初学者的10个迷你技巧第1/2页
- Python选择排序、冒泡排序、合并排序代码实例
- Android调用手机拍照功能的方法
- datePicker——日期选择控件(with jquery)
- nginx配置gzip压缩页面
- 在javascript中,null>=0 为真,null==0却为假,null的值详解
- 三个有用的 Switch 命令