网站建设怎么做账务处理创卫网站 建设 方案

web/2025/10/4 14:13:32/文章来源:
网站建设怎么做账务处理,创卫网站 建设 方案,聚财三个字公司名字,wordpress权限acl目录 写在开头 socket服务端#xff08;基础#xff09; socket客户端#xff08;基础#xff09; 服务端实现#xff08;可连接多个客户端#xff09; 客户端实现 数据收发效果 写在开头 近期可能会用python实现一些网络安全工具#xff0c;涉及到许多关于网络…目录 写在开头 socket服务端基础 socket客户端基础 服务端实现可连接多个客户端  客户端实现 数据收发效果 写在开头 近期可能会用python实现一些网络安全工具涉及到许多关于网络的知识逃不过的就是最基本的socket。本文将介绍如何通过python自带的socket库实现TCP客户端和服务端实现多个客户端与一个服务端的消息收发这是网络编程的基础。尽管python有许多第三方库可以创建网络客户端和服务端但其核心都是socket模块socket模块提供了许多有关网络连接的接口可以干很多事情后续我们还可能基于本文的案例慢慢继续开发实现一些主机扫描、数据包注入等工具。 socket套接字是进程之间进行网络通信的媒介通信时分为服务端和客户端可见下图图来自黑马程序员的python课件。 socket服务端被动等待其他进程客户端的连接可以同时连接多个客户端与之通信实现消息的收发。 socket客户端主动连接服务端与服务端通信。 下面我们先实现一个基础的服务端和客户端实现一个客户端与一个服务端之间的通信。 socket服务端基础 首先引入socket模块并创建socket服务端对象socket_server此时该对象还无法确定是客户端/服务端作为服务端应当绑定一个服务端的主机和端口这里就以本地localhost端口8888为例通过.bind方法传入元组。 import socket # 创建socket对象 socket_server socket.socket() # 绑定ip和端口表明是服务端 socket_server.bind((localhost, 8888)) 接下来通过listen方法让服务器开始监听传入一个int整数表示最大连接数。此处我们实现最基础的情况传入1仅允许一个客户端连接该服务端。接下来通过accept方法等待客户端的连接在此之前我们可以通过print打印提示“正在等待客户端连接”。accept方法是一个阻塞是的方法如果没有客户端连接程序将一直在这里等待连接。.accept()方法返回一个二元元组(conn, client_addr)conn表示客户端和服务端的连接对象client_addr (client_host, client_port)我们用两个变量conn和address分别接收 # listen方法内接受一个整数传参数表示接受的连接数量可不填 socket_server.listen(1) # 等待客户端连接accept方法返回二元元组(连接对象, 客户端地址信息) # accept()方法是阻塞式的方法如果没有客户端连接会一直等待不往下执行 print(f服务端已开始监听正在等待客户端连接...) conn, address socket_server.accept() print(f接收到了客户端的连接客户端的信息{address}}) 下面就可以实现数据的收发了数据的收发基于本次服务端与客户端的连接对象conn而非socket对象socket_server。这里假设客户端先发来消息服务端先接收客户端发来的消息再给客户端发送消息。接收消息使用recv方法该方法也是阻塞式只要没有接收到数据就会一直等待。其中的参数是缓冲区大小通常填1024即可recv接收到的消息返回值是字节流bytes对象因此还需要通过decode方法解码为字符串 data: str conn.recv(1024).decode(UTF-8) 接收完成后服务端通过send方法发送消息到客户端同样也需要将字符串编码为字节流的形式 msg input(请输入你要回复客户端的消息)conn.send(msg.encode(UTF-8)) # encode将字符串编码为字节数组对象 完善一下代码服务端实现持续的消息接收和发送直到服务端输入exit退出关闭服务端 while True:# 接收消息data: str conn.recv(1024).decode(UTF-8)print(f客户端发来的消息是{data})# 回复消息msg input(请输入你要回复客户端的消息)if msg exit:breakconn.send(msg.encode(UTF-8)) # encode将字符串编码为字节数组对象 最后关闭此次连接即可并关闭服务端。 conn.close() socket_server.close() 完整的服务端socket_server.py代码如下 import socketsocket_server socket.socket() socket_server.bind((localhost, 8888)) # 监听端口 socket_server.listen(1) # 等待客户端连接accept方法返回二元元组(连接对象, 客户端地址信息) print(f服务端已开始监听正在等待客户端连接...) conn, address socket_server.accept() print(f接收到了客户端的连接客户端的信息{address}})# 接受客户端信息使用客户端和服务端的本次连接对象而非socket_server while True:# 接收消息data: str conn.recv(1024).decode(UTF-8)print(f客户端发来的消息是{data})# 回复消息msg input(请输入你要回复客户端的消息)if msg exit:breakconn.send(msg.encode(UTF-8)) # encode将字符串编码为字节数组对象# 关闭连接 conn.close() socket_server.close() 写完了不要着急运行我们搞定客户端再一起试试。 socket客户端基础 客户端的代码和服务端差不多只不过客户端是主动连接服务器因此需要.connect方法连接服务器的host和端口传入元组(服务端主机, 服务端端口号)即可此处我们传入(localhost, 8888) import socket # 创建socket对象 socket_client socket.socket() # 连接到服务器 socket_client.connect((localhost, 8888)) 接下来实现数据的发送和接收此处客户端先发送消息给服务端再接收服务端回复的消息。同样的方法send方法发送recv方法接收注意Bytes字节流和字符串的转换即可 while True:send_msg input(请输入要发送给服务端的消息)if send_msg exit:break# 发送消息到服务端socket_client.send(send_msg.encode(UTF-8))# 接收服务端的消息recv_data socket_client.recv(1024).decode(UTF-8) # 1024是缓冲区大小一般就填1024 recv是阻塞式print(f服务端回复的消息是{recv_data}) 类似最后关闭连接 # 关闭连接 socket_client.close() 完整的客户端代码socket_client.py如下 import socket # 创建socket对象 socket_client socket.socket() # 连接到服务器 socket_client.connect((localhost, 8888))while True:send_msg input(请输入要发送给服务端的消息)if send_msg exit:break# 发送消息socket_client.send(send_msg.encode(UTF-8))# 接受消息recv_data socket_client.recv(1024).decode(UTF-8) # 1024是缓冲区大小一般就填1024 recv是阻塞式print(f服务端回复的消息是{recv_data})# 关闭连接 socket_client.close() 代码完成之后我们先运行服务端代码socket_server.py即可实现绑定服务器端口并等待客户端连接 然后开启客户端运行socket_client.py即可建立连接  此时回到刚才的服务端界面可以发现出现了提示建立了连接此次连接的客户端主机是本机127.0.0.1端口是2133 在客户端输入消息即可实现客户端到服务端的消息传送同理服务端也可以发送数据到客户端 任意一方输入exit即退出另一方再发消息由于连接已经关闭会出现异常 这样我们就实现了客户端与服务端的通信但此时只能有一个客户端连接到服务端如果想实现多个客户端就需要修改服务端listen()的参数允许更多的客户端连接下面进行讲解。 服务端实现可连接多个客户端  这里先直接给出完整的代码server.py import socket import threadingdef create_server_socket(host, port):socket_server socket.socket()socket_server.bind((host, port))socket_server.listen(5)print(f服务端已启动地址{host}端口{port})print(f正在等待客户端连接...)# 开启多线程收发来自多个客户端的数据num 0 # 标记客户端的编号while True:num 1conn, address socket_server.accept()print(f服务端已接受到客户端 {num}号 的连接请求客户端信息{address})client_handler threading.Thread(targethandle_client, args(conn, address, num))client_handler.start()# 处理收发数据 def handle_client(conn, address, num):while True:# 接收客户端发来的数据data_from_client: str conn.recv(1024).decode(UTF-8)print(f客户端 {num}号:{address}发来的消息是{data_from_client})# 发送消息到客户端msg input(f请输入你要回复客户端 {num}号:{address}的消息)if msg exit:breakconn.send(msg.encode(UTF-8)) # encode将字符串编码为字节数组对象conn.close()if __name__ __main__:server_host input(请输入服务端Host:)server_port int(input(请输入服务端port:))create_server_socket(server_host, server_port)其实也没有特别多的变化通过函数进行了封装然后修改listen方法传一个大于1的整数表示允许更多的客户端连接此处设置的最大连接数为5。将数据收发的过程封装在函数handle_client中额外设置了参数num表示这是第几个连接到该服务端的客户端。 当一个客户端成功建立连接的时候即运行完成conn, address socket_server.accept()之时将接收到的客户端socket对象保存在conn变量远程连接信息客户端host, 客户端port保存在address变量并启动线程指向handle_client函数传入连接对象conn连接信息address和客户端号num。创建好之后启动该线程。于此同时服务端create_server_socket中的while True循环也已经准备好处理下一个潜在的客户端连接。 客户端实现 客户端和刚才的其实可以没啥区别这里重新用函数封装为client1.py好了 import socketdef create_client(host, port):socket_client socket.socket()socket_client.connect((host, port))# 发送、接受数据while True:msg input(f请输入客户端1发送给服务端{host}:{port}的数据)if msg exit:break# 发送数据到服务端socket_client.send(msg.encode(UTF-8))# 接收服务端的数据data_from_server socket_client.recv(1024).decode(UTF-8)print(f客户端接收到服务端的消息{data_from_server})socket_client.close()if __name__ __main__:server_host input(请输入想要连接的服务端Host:)server_port int(input(请输入想要连接的服务端port:))create_client(server_host, server_port)由于要实现多个客户端的连接我们可以创建另外一个文件client2.py代码和client1一样。这里我就用刚才的socket_client.py做示范好了。 数据收发效果 首先运行服务端代码server.py。输入服务端的host本地localhost和port8888此时服务端就进入了等待客户端连接的状态 再运行客户端代码client1.py和socket_client.py 输入服务端的host和端口即可建立连接 服务端显示连接建立成功两个连接均已建立 然后两个连接即可各自实现服务端与客户端的数据收发注意都是客户端先发送消息服务端先接收消息。客户端1号client.py如下 客户端2号socket_server.py运行交互过程如下 服务端server.py的运行交互过程如下 任何一端输入exit即可退出对应的客户端和服务端建立的连接会断开其他的连接依旧正常通信比如这里服务端断开与client1的连接与客户端2 socket_client的通信不受影响 client1客户端1由于服务端已经端口异常退出了 客户端2不受影响 到这里就实现了多个客户端与服务端的消息传送。当然本文没有考虑如何处理阻塞、如何进行异常处理等细枝末节。后续可能会继续改进并基于socket基本的通信不断扩展其功能实现一些简易的网络工具。近期感觉网安就业困难以后可能还会更新一些大数据相关的内容敬请期待。如果读者有什么问题也欢迎评论区指出知无不言。总结不易还请读者多多点赞关注支持。

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

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

相关文章

易购商城网站怎么做啊专门做卫生间效果图的网站

309.最佳买卖股票时机含冷冻期 309. 买卖股票的最佳时机含冷冻期 - 力扣(LeetCode) dp数组: 模拟状态:买买买 卖 冻卖卖卖 买 卖 dp[i][0] :持有股票 dp[i][1]: 不持有股票,但是之前卖出去的 dp[i][2]: 不持有股票…

南宁网站平台大专动漫设计有出路吗

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1. 启动工程失败,报错如题: A component required a bean of type gentle.test.Show that could not be found.…

织梦网站后台文章编辑美化代码怎样创建公司网站

介绍 定义了一个Cache结构体,其中使用sync.Map作为底层数据结构来存储缓存项。Set方法用于设置缓存项,指定键、值以及过期时间。Get方法用于获取缓存项,如果缓存项存在且未过期,则返回值和true,否则返回nil和false。方…

建设网站公开教学视频下载做图表用的网站

前言:博主文章仅用于学习、研究和交流目的,不足和错误之处在所难免,希望大家能够批评指出,博主核实后马上更改。 概述: 后续排序按照从上至下或从右至左的顺序进行,具体取决于方向属性的值。WrapPanel 位…

营销网站开发哪家强wordpress副标题的作用

从一篇日记说起我是一个小前端,我有写日记的习惯2020年10月17 天气 晴今天天气不错,心情也跟着好起来了辛辛苦苦加班两个星期终于完成了产品需求,到了要上线的时候了,嘴里也不知不觉哼起了“劳资今晚不加班”的小曲一顿操作猛如虎…

网站空间文件夹网络工程就业前景好吗

直接判断数据过大 相对而言&#xff0c;由2&#xff0c;3&#xff0c;5&#xff0c;7组成的数更少&#xff0c;则先筛选出由2,3,5,7组成的数&#xff0c;再判断这些数中的质数个数即可 #include <iostream> using namespace std; int main() {printf("1903");…

网站买卖交易平台网站制作工具有哪些

104规约从TCP往上&#xff0c;分成链路层和应用层。 如图&#xff0c;APCI就是链路层&#xff0c;ASDU的就是应用层 我们看到报文都是68打头的&#xff0c;因为应用层报文也要交给链路层发送&#xff0c;链路层增加了开头的6个字节再进行发送。 完全用于链路层的报文每帧都只有…

做tcf法语听力题的网站动漫制作专业在广西哪所院校最强

高中那年&#xff0c;我表姐对我说&#xff1a;“不要老想着出去打工赚钱&#xff0c;好好读书&#xff0c;将来肯定有用&#xff0c;也不要想着现在日子长得很&#xff0c;等你像我这样结婚生子后&#xff0c;一天一眨眼就过完了。”当时听了没有多大感觉&#xff0c;如今深以…

企业网站中( )是第一位的。织梦网站怎么做404页面

一、获取当前窗口句柄 1.元素有属性&#xff0c;浏览器的窗口其实也有属性的&#xff0c;只是你看不到&#xff0c;浏览器窗口的属性用句柄&#xff08;handle&#xff09;来识别。 2.人为操作的话&#xff0c;可以通过眼睛看&#xff0c;识别不同的窗口点击切换。但是脚本没长…

长沙网站的建设h5响应式 wordpress

方法一&#xff1a;ssh 方法二&#xff1a;commandK进入远程桌面&#xff0c;这种方式类似于windwos下的远程桌面 转载于:https://www.cnblogs.com/xiyuan2016/p/9020978.html

邵阳营销型网站建设网页游戏排行力荐新壹玩

前言 Redis 的 RDB 持久化机制简单直接&#xff0c;把某一时刻的所有键值对以二进制的方式写入到磁盘&#xff0c;特点是恢复速度快&#xff0c;尤其适合数据备份、主从复制场景。但如果你的目的是要保证数据可靠性&#xff0c;RDB 就不太适合了&#xff0c;因为 RDB 持久化不…

西安高端品牌网站wang域名的网站

列表 列表的元素 有序列表&#xff1a;ol、li无序列表&#xff1a;ul、li自定义列表&#xff1a;dl dt dd 自定义列表 dl 定义列表&#xff0c;直接元素只能是dt、dd dt 列表中每一项的项目名 dd 列表的每一项的具体描述 表格 table 表格border-collapse:collapse; (塌陷的…

上海红酒网站建设沈阳工程建设监理咨询

文章目录 Batch Normalizationinternal covariate shift激活层的作用BN执行的位置数据白化网络中的BN层训练过程 BN的实验效果MNIST与GoogleLeNet V1比较 GoogleLeNet出来之后&#xff0c;Google在这个基础上又演进了几个版本&#xff0c;一般来说是说有4个版本&#xff0c;之前…

与安网站建设广州短视频网站开发

国外主流还是使用apache&#xff1b;国内现在主流是nginx&#xff08;并发能力强&#xff0c;相对稳定&#xff09; nginx&#xff1a;高性能、轻量级的web服务软件 特点&#xff1a; 1.稳定性高&#xff08;没apache稳&#xff09;&#xff1b; 2.系统资源消耗比较低&#xf…

一些设计网站投票链接制作

运行示例项目报错缺少dll&#xff0c;发现运用了这个大老李&#xff0c;通过添加PATH路径也无法解决&#xff0c;看到debug文件夹下面没有其他的依赖项。 通过depneds工具可以看到 OCCTProxy_D3D.dll 缺少依赖项&#xff0c;图中的缺项都是OCCT生成的模块dll所以讲这些dll从..…

商城网站建设价位asp.net门户网站项目怎么做

本文转载自公众号: 美团技术团队.作为人工智能时代最重要的知识表示方式之一&#xff0c;知识图谱能够打破不同场景下的数据隔离&#xff0c;为搜索、推荐、问答、解释与决策等应用提供基础支撑。美团大脑围绕吃喝玩乐等多种场景&#xff0c;构建了生活娱乐领域超大规模的知识图…

站内推广方案公司部门名字大全

2016年五一杯数学建模 C题 二孩政策问题 原题再现 多年来实施的严、紧计划生育政策对控制人口增长起到关键作用。在优生优育政策的指引下&#xff0c;我国人口质量显著提高&#xff0c;但也带来了不利影响&#xff0c;生育率偏低、男女比例失衡、人口老龄化情况严重等问题。2…

郑州网站app建设微信应用平台开发

如果调试是消除软件错误的过程&#xff0c;那么编程一定是添加错误的过程。Edsger Dijkstra。来自 https://www.azquotes.com/quote/561997 一、说明 在这篇文章中&#xff0c;我想谈谈 TensorFlow 中的调试。 在之前的一些帖子&#xff08;此处、此处和此处&#xff09;中&…

仿网站教程关键词搜索排行榜

Java 条件语句 - if…else Java 中的条件语句允许程序根据条件的不同执行不同的代码块。 一个 if 语句包含一个布尔表达式和一条或多条语句。 语法 if 语句的语法如下&#xff1a; if(布尔表达式) {//如果布尔表达式为true将执行的语句 }如果布尔表达式的值为 true&#x…

网站集约化建设工作总结郑州男科医院怎么样啊

随着计算机技术的不断发展&#xff0c;企业的办公系统得到了很大提升&#xff0c;但是随之而来的网络安全威胁也不断增加&#xff0c;勒索病毒的攻击事件时有发生。近期&#xff0c;我们收到某地连锁超市的求助&#xff0c;企业的计算机服务器遭到了360后缀勒索病毒攻击&#x…