Python3——简单的TCP实例

                   Python3网络编程——简单的TCP实例

 

服务器:创建套接字——绑定服务器地址——监听连接——接受连接——数据接收/发送

客户端:创建套接字——连接服务器地址——数据接收/发送

"""
server.py
encode()/decode()
"""
from socket import *
from time import ctimeHOST = ''
PORT = 11113
BUFSIZE = 4096
ADDR = (HOST, PORT)tcpServer = socket(AF_INET, SOCK_STREAM)
tcpServer.bind(ADDR)
tcpServer.listen(10)while 1:print('waiting for connection...')tcpClient, addr = tcpServer.accept()print(addr)while 1:data = tcpClient.recv(BUFSIZE)print(data.decode())if not data:print('---------')break;buf = '[' + ctime() + ']' + data.decode()tcpClient.send(buf.encode())tcpClient.close()
tcpServer.close()
"""
client.py
encode()/decode()
"""
from socket import *HOST = 'localhost'
PORT = 11113
BUFSIZE = 4096
ADDR = (HOST, PORT)tcpClient = socket(AF_INET, SOCK_STREAM)
tcpClient.connect(ADDR)while 1:data = input('> ')if not data:breaktcpClient.send(data.encode())data = tcpClient.recv(BUFSIZE)print(data.decode())if not data:breaktcpClient.close()

在开发中,创建这种“友好的”退出方式的一种方法就是,将服务器的 while 循环放在一个 try-except 语句中的 except 子句中,并监控 EOFError 或 KeyboardInterrupt 异常,这样你就可以在 except 或 finally 字句中关闭服务器的套接字。在生产环境中,你将想要能够以一种更加自动化的方式启动和关闭服务器。在这些情况下,需要通过使用一个线程或创建一个特殊文件或数据库条目来设置一个标记以关闭服务。
            多线程客户端请求:将一个客户端请求切换到一个新线程或进程来完成客户端处理也是相当普遍的。 SocketServer 模块是一个以 socket 为基础而创建的高级套接字通信模块,它支持客户端请求的线程和多进程处理。上面例子只是简单例子,复杂的后面再讨论。

 

 

 

 

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

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

相关文章

位图索引,数据库索引浅浅的学习

摘自http://www.cnblogs.com/LBSer/p/3322630.html 位图(BitMap)索引 前段时间听同事分享,偶尔讲起Oracle数据库的位图索引,顿时大感兴趣。说来惭愧,在这之前对位图索引一无所知,因此趁此机会写篇博文介绍下…

UDP协议 sendto 和 recvfrom 浅析与示例

图片/在思考的樱木花道UDP(user datagram protocol)用户数据报协议,属于传输层。UDP是面向非连接的协议,它不与对方建立连接,而是直接把数据报发给对方。UDP无需建立类如三次握手的连接,使得通信效率很高。…

2010软考软件设计师冲刺精选【专家压轴模拟•下】

2010软考软件设计师冲刺精选【专家压轴模拟•下】 自测简介: 为迎战2010年软考,51CTO特邀请软考专家为网友出了一系列模拟冲刺题。其中包括网络规划设计师、网络工程师、网络管理员、软件设计师、程序员等。本套技术自测是软考软件设计师冲刺模拟题…

劝你要看一些有门槛的机会

最近发了很多招聘信息,招聘的岗位算不错的,但是投简历的人不多。我想起来刚开始工作那几年,工资虽然很低,但是也不怎么想鞠躬投简历,毕竟那个时候把面子这个事情看的比什么都重要。自己觉得自己有才,不过后…

Python3——简单的UDP实例

Python3——简单的UDP实例 服务器:创建套接字——绑定套接字——数据接收/发送 客户端:创建套接字——数据接收/发送 """ server.py encode()/decode() """ from socket import * from time import ctimeHOST PORT 11…

[状压dp]洛谷 P2157 学校食堂

题目描述 小F 的学校在城市的一个偏僻角落,所有学生都只好在学校吃饭。学校有一个食堂,虽然简陋,但食堂大厨总能做出让同学们满意的菜肴。当然,不同的人口味也不一定相同,但每个人的口味都可以用一个非负整数表示。 由…

怎么得到自增列的下一个会插入的id

代码 1declareTable_namevarchar(60) 2setTable_namePay_inputpay; 3Selectso.name Table_name, --表名字4sc.name Iden_Column_name, --自增字段名字5ident_current(so.name) curr_value, --自增字段当前值6ident_incr(so.name) incr_value,…

ESP32,使用gitee搭建 ESP-IDF 开发框架

ESP32便宜,开发方便,非常适合初学者用来学习,之前我自己写的开发环境可能不再适合,推荐下面这篇文章。关于如何搭建ESP32的开发环境,乐鑫官方给出了很详细的教程和文档,基本上跟着官方教程来操作&#xff0…

jQuery的ajax技术

编辑本博客 ajax异步的JavaScript和html load() 从服务器加载数据,并把返回的数据放入备选元素中。这里加载回来的数据可以只有一个p标签,无需head元素等 $("selector").load(url,data,callback) url:必选,规定加载的ur…

Python3——FTP(文件传输协议)

Python3——FTP(文件传输协议) 工作流程: 客户端连接远程主机的FTP服务器;客户端输入用户名密码;客户端进行各种文件传输和信息查询;客户端从FTP服务器退出。ftplib.FTP常用方法 login(user,passwd)登录 …

Linux设备树的传递以及kernel中对设备树的解析

当U-Boot将设备树加载到内存指定位置后,ARM内核的SoC以通用寄存器r2来传递dtb在内存中的地址。kernel获取到该地址后对dtb文件做进一步的处理。#设备树的传递当使用bootm加载kernel镜像时(bootz是对bootm的一种封装以及功能扩展,实质一样&…

切片基础slice

定义:slice表示一个拥有相同类型元素的可变长度的序列 slice有三个属性:指针,长度,容量 指针指向第一个可以从slice中访问的元素,这个元素并不一定是数组的第一个元素 注意: 1.一个底层数组可以对应多个sli…

常用shell命令

要复制整个目录,请使用 cp 命令的 -r 选项。例如,如果有一个名为 mydir 的目录,其中包含 myfile 和 newfile,则可以将该目录复制到一个名为 mydir2 的新目录。mydir2 还将包含 myfile 和 newfile 的副本。请使用以下命令&#xff…

Linux kernel之SMP初始化

01—SMP数据结构SMP的数据结构如下图所示,主要由2部分构成,通过两个宏定义CONFIG_SMP和CONFIG_HOT_PLUG来控制。当设置kernel支持SMP模式时,那么CONFIG_SMP选项是一定会打开的,因此第一部分是必须实现的内容。而第二部分是否需要实…

Python3——多线程之threading模块

Python3——多线程之threading模块 目录 Python3——多线程之threading模块 Threading模块的对象 Threading模块的Thread类 queue模块(线程间通信) Python 提供了多个模块来支持多线程编程,包括 thread、 threading 和 Queue 模块等。程…

BZOJ2216 [Poi2011]Lightning Conductor 【决策单调性dp】

题目链接 BZOJ2216 题解 学过高中数学都应知道,我们要求\(p\)的极值,参变分离为\[h_j sqrt{|i - j|} - h_i \le p\] 实际上就是求\(h_j sqrt{|i - j|} - h_i\)的最大值 就可以设\(f[i]\)表示对\(i\)最大的该式的值 绝对值通常要去掉,一般可…

笔记本 cpu 参数

选本必看--笔记本主流cpu参数大全现在本本的处理器种类真的太多了,绝对足够让人眼花缭乱的,各式各样的CPU核心、外频、缓存、接口、电压、制作工艺等等,多到让人疯狂,很少认能够对此了如执掌的。这次我们归纳了所有主流的本本处理…

MTK笔试1题~

这个题目是前几天一个好友分享给我的,但是因为时间原因没有及时写成文章。这是他参加MTK笔试的题目题目如下:网友提供的代码如下:#include "stdio.h"typedef struct n{int data;struct n* next;struct n* pre; }*pnode;int main(){…

console和windows子系统

https://blog.csdn.net/ilvu999/article/details/8050292 转载于:https://www.cnblogs.com/132818Creator/p/9210791.html

Python3 —— 逗号分隔值CSV

Python3 —— 逗号分隔值CSV 目录 Python3 —— 逗号分隔值CSV CSV 读写CSV文件 CSV 逗号分隔值( Comma-Separated Value, CSV)。与专有的二进制文件格式截然不同, CSV 通常用于在电子表格软件和纯文本之间交互数据。CSV 文件…