当前位置: 首页 > news >正文

广州做网站基本流程网站建设028

广州做网站基本流程,网站建设028,域名不变 网站改版,wordpress 360字体大小简介 在网络通信编程中#xff0c;用的最多的就是UDP和TCP通信了#xff0c;原理这里就不分析了#xff0c;网上介绍也很多#xff0c;这里简单列举一下各自的优缺点和使用场景 通信方式优点缺点适用场景UDP及时性好#xff0c;快速视网络情况#xff0c;存在丢包 与嵌入…简介 在网络通信编程中用的最多的就是UDP和TCP通信了原理这里就不分析了网上介绍也很多这里简单列举一下各自的优缺点和使用场景 通信方式优点缺点适用场景UDP及时性好快速视网络情况存在丢包 与嵌入式设备通信实时控制 场景 TCP丢包会自动重发理论上不用担心丢包问题延时相对大一些 通信可靠性场景比如IoT设备 控制状态同步 一、socket 我们要进行网络通信那么就要用到socketsocket即网络套接字应用程序可以通过它发送或接收数据可对其进行像对文件一样的打开、读写和关闭等操作。 在 Python 中使用socket 模块的函数 socket 就可以创建一个socket对象socket()函数的参数分别有family, type, proto。 1.其中family参数是指协议域又称为协议族family常用的协议族有AF_INET、AF_INET6、...等等AF_INET指ipv4AF_INET6即为ipv6 2.然后是typetype指定socket类型有SOCK_STREAM流式套接字主要用于 TCP 协议和SOCK_DGRAM数据报套接字主要用于 UDP 协议等等 3.proto就是指定的协议常用的协议有IPPROTO_TCP、IPPTOTO_UDP、IPPROTO_SCTP、IPPROTO_TIPC等它们分别对应TCP传输协议、UDP传输协议、STCP传输协议、TIPC传输协议但是type和proto不可以随意组合当proto参数为0或者不填时会自动选择type类型对应的默认协议。 二、UDP发送数据 首先我们要导入socket包 import socket 创建一个udp套接字ipv4协议使用SOCK_DGRAM参数不填proto就会默认自动选择udp协议 # 1、创建一个UDP套接字 udp_socket socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 然后我们把要接收数据的那一端的ip地址和端口号放在一个元组里准备好 ​​​​# 2. 准备接收方的地址和端口127.0.0.1:12341表示目的ip地址12341表示目的端口号 dest_addr (127.0.0.1, 12341)  # 注意这是一个元组其中ip地址是字符串端口号是数字​ 准备好后就可以使用sendto函数进行发送了要注意需要对字符串进行编码才可以发送 # 3. 发送数据到指定的ip和端口 udp_socket.sendto(Hello,I am a UDP socket..encode(utf-8), dest_addr) 发送完就可以关闭套接字了 # 4. 关闭套接字 udp_socket.close() 例程一UDP server端UDP数据接收 #!/usr/bin/python3 # -*- coding: utf-8 -*- udp通信例程udp server端修改udp_addr元组里面的ip地址即可实现与目标机器的通信 此处以单机通信示例ip为127.0.0.1实际多机通信此处应设置为目标客户端ip地址 from time import sleep import socketdef main():# udp 通信地址IP端口号udp_addr (127.0.0.1, 9999)udp_socket socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# 绑定端口udp_socket.bind(udp_addr)# 等待接收对方发送的数据while True:recv_data udp_socket.recvfrom(1024)  # 1024表示本次接收的最大字节数# 打印接收到的数据print([From %s:%d]:%s % (recv_data[1][0], recv_data[1][1], recv_data[0].decode(utf-8)))if __name__ __main__:print(当前版本 , __version__)print(udp server )main() 代码解析  1.socket函数中第二个参数就是通信类型此处SOCK_DGRAM 就是指定使用UDP通信 2.服务端需要使用bind函数绑定端口客户端不需要因为客户端发送的时候已经带了端口参数 例程二UDP client端UDP数据发送 #!/usr/bin/python3 # -*- coding: utf-8 -*- udp通信例程udp client端修改udp_addr元组里面的ip地址即可实现与目标机器的通信 此处以单机通信示例ip为127.0.0.1实际多机通信此处应设置为目标服务端ip地址 from time import sleep import socketdef main():# udp 通信地址IP端口号udp_addr (127.0.0.1, 9999)udp_socket socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# 发送数据到指定的ip和端口,每隔1s发送一次发送10次for i in range(10):udp_socket.sendto((Hello,I am a UDP socket for: str(i)) .encode(utf-8), udp_addr)print(send %d message % i)sleep(1)# 5. 关闭套接字udp_socket.close()if __name__ __main__:print(当前版本 , __version__)print(udp client )main() 例程三多线程实现UDP数据收发 #!/usr/bin/python3 # -*- coding: utf-8 -*- python多线程通信 from time import sleep import socket import threading# 定义全局变量 t1_count 0 t2_count 0def udp_received_hundle(s):global t1_countprint(this is thread 1 running)while True:t1_count 1print(thread 1 第 %s 次运行 % t1_count)recv_data s.recvfrom(1024)  # 1024表示本次接收的最大字节数# 打印接收到的数据print([From %s:%d]:%s % (recv_data[1][0], recv_data[1][1], recv_data[0].decode(utf-8)))def udp_send_hundle(s):global t2_countprint(this is thread 2 running)while True:t2_count 1print()print(thread 2 第 %s 次运行 % t2_count)s.sendto((Hello,I am a UDP socket for: str(t2_count)).encode(utf-8), udp_addr)print(send %d message % t2_count)print()sleep(1)if __name__ __main__:print(当前版本 , __version__)# 初始化# udp 通信地址IP端口号udp_addr (127.0.0.1, 9999)udp_socket socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# 绑定端口:udp_socket.bind(udp_addr)# 定义线程thread_list []t1 threading.Thread(targetudp_received_hundle, args(udp_socket, ))thread_list.append(t1)t2 threading.Thread(targetudp_send_hundle, args(udp_socket, ))thread_list.append(t2)for t in thread_list:t.setDaemon(True)t.start()for t in thread_list:t.join()print(exit all task.)print(all process end.) 代码解析 这里用到了多线程虽然python中的多线程是假的多线程实际上是一个线程分时复用这里我们不深究如果平常用到也就几个小任务跑一跑抄我这个作业就ok。 多线程实际上是从t.join()后才开始正式运行的这里一定要注意不能漏了这个函数。 udp的收发与上面的例程几乎是一样的。 代码运行效果如下 当前版本  1.0.0 this is thread 1 running thread 1 第 1 次运行 this is thread 2 runningthread 2 第 1 次运行 send 1 message[From 127.0.0.1:9999]:Hello,I am a UDP socket for: 1 thread 1 第 2 次运行thread 2 第 2 次运行 send 2 message[From 127.0.0.1:9999]:Hello,I am a UDP socket for: 2 thread 1 第 3 次运行thread 2 第 3 次运行 send 3 message[From 127.0.0.1:9999]:Hello,I am a UDP socket for: 3 thread 1 第 4 次运行thread 2 第 4 次运行 send 4 message[From 127.0.0.1:9999]:Hello,I am a UDP socket for: 4 thread 1 第 5 次运行thread 2 第 5 次运行 send 5 message 使用网络调试助手测试程序注意如果不是在本机windows系统上运行python程序在Ubuntu虚拟机或者其他局域网内的机器上运行要把windows的防火墙关了 然后我们让其每隔一秒发送一次发送10次发送成功 完整代码 ​#!/usr/bin/env python # -*- coding:utf-8 -*- # Author: Williamimport socket,timedef main():# 1、创建一个UDP套接字udp_socket socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# 2. 准备接收方的地址和端口192.168.0.107表示目的ip地址8080表示目的端口号dest_addr (192.168.8.226, 12341)  # 注意这是一个元组其中ip地址是字符串端口号是数字# 3. 发送数据到指定的ip和端口for i in range(10):udp_socket.sendto(Hello,I am a UDP socket..encode(utf-8), dest_addr)time.sleep(1)# 4. 关闭套接字udp_socket.close()if __name__ __main__:main()​ 三、UDP接收数据 在之前发送数据的时候我们可以看到其端口号是一直在变得那么我们要接收数据就需要知道其端口号是什么所以我们要先固定一个端口号使用bind函数 # 2. 绑定本地的相关信息如果不绑定则系统会随机分配一个端口号 local_addr (, 12344)  # ip地址和端口号ip一般不用写表示本机的任何一个ip udp_socket.bind(local_addr) 接收数据使用recvfrom函数其参数为接收的最大数据长度 # 3. 等待接收对方发送的数据 recv_data udp_socket.recvfrom(1024)  # 1024表示本次接收的最大字节数 接收完后将其打印出来 # 4、打印接收到的数据 print(recv_data) 运行通过网络调试助手发送数据 可以看到打印出来的信息是一个元组第一项接收到的字符串第二项也是一个元组包含对方的IP地址和端口号 完整代码 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author: Williamimport socket,timedef main():# 1、创建一个UDP套接字udp_socket socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# 2. 绑定本地的相关信息如果不绑定则系统会随机分配一个端口号local_addr (, 12344)  # ip地址和端口号ip一般不用写表示本机的任何一个ipudp_socket.bind(local_addr)# 3. 等待接收对方发送的数据recv_data udp_socket.recvfrom(1024)  # 1024表示本次接收的最大字节数# 4、打印接收到的数据print(recv_data)# 5. 关闭套接字udp_socket.close()if __name__ __main__:main() 四、UDP收发数据 实现这样一个功能通过UDP发送10次消息然后等待接收将接收的数据及其来源打印出来 完成代码 ​ #!/usr/bin/env python # -*- coding:utf-8 -*- # Author: Williamimport socket,timedef main():# 1、创建一个UDP套接字udp_socket socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# 2. 绑定本地的相关信息如果不绑定则系统会随机分配一个端口号udp_socket.bind((, 12344))# 3. 发送数据到指定的ip和端口,每隔1s发送一次发送10次for i in range(10):udp_socket.sendto(Hello,I am a UDP socket..encode(utf-8), (192.168.8.226, 12341))time.sleep(1)# 4. 等待接收对方发送的数据while(True):recv_data udp_socket.recvfrom(1024)# 打印接收到的数据print([From %s:%d]:%s%(recv_data[1][0],recv_data[1][1],recv_data[0].decode(utf-8)))# 5. 关闭套接字udp_socket.close()if __name__ __main__:main()​ 五、同时收发数据 现在实现这样一个功能即运行程序然后在控制台输入字符串发送出去同时还可以接收数据我使用多线程来实现这个程序不过要实现方便接收我们在程序的开始将IP地址和端口号打印出来实现效果如下 实现代码 ​ #!/usr/bin/env python # -*- coding:utf-8 -*- # Author: Williamimport socket,time,threadingdef recv_thread(socket):# 等待接收对方发送的数据while(True):try:recv_data socket.recvfrom(1024)# 打印接收到的数据print([From %s:%d]:%s%(recv_data[1][0],recv_data[1][1],recv_data[0].decode(utf-8)))except Exception:breakdef main():# 1、创建一个UDP套接字udp_socket socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# 2、绑定本地的相关信息如果不绑定则系统会随机分配一个端口号udp_socket.bind((, 12344))# 3、打印本机ip地址和端口号print(local ipaddr and port-,socket.gethostbyname(socket.gethostname()):12344)# 4、创建一个线程用来接收数据t threading.Thread(targetrecv_thread, args(udp_socket,))t.start()# 5、等待输入数据,然后发送出去直到输入的数据为quitwhile(True):print(please input a string.input quit to quit.)send_data input()if send_data quit:breakelse:udp_socket.sendto(send_data.encode(utf-8), (192.168.8.226,12341))# 6、关闭套接字udp_socket.close()def main1():# 1、创建一个UDP套接字udp_socket socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# 2. 准备接收方的地址和端口192.168.0.107表示目的ip地址8080表示目的端口号dest_addr (192.168.8.226, 12341)  # 注意这是一个元组其中ip地址是字符串端口号是数字# 3. 发送数据到指定的ip和端口for i in range(1):udp_socket.sendto(Hello,I am a UDP socket..encode(utf-8), dest_addr)time.sleep(1)# 4. 等待接收对方发送的数据recv_data udp_socket.recvfrom(1024)  # 1024表示本次接收的最大字节数# 5、打印接收到的数据print(recv_data)# 4. 关闭套接字udp_socket.close()if __name__ __main__:main()​ 结语 这里只是UDP的简单使用给大家一个示例参考在实际应用过程中涉及到复杂数据通信还需要使用通信协议协议收发解包等函数另外数据缓存也很关键尤其是大数据量的情况下通常会用到队列相关知识这一部分就留给大家自行研究吧如果这篇文章对你有用不妨点赞关注你的支持是我最大的动力。
文章转载自:
http://www.morning.mcmpq.cn.gov.cn.mcmpq.cn
http://www.morning.jpdbj.cn.gov.cn.jpdbj.cn
http://www.morning.zlgr.cn.gov.cn.zlgr.cn
http://www.morning.mcjxq.cn.gov.cn.mcjxq.cn
http://www.morning.ptqpd.cn.gov.cn.ptqpd.cn
http://www.morning.nclbk.cn.gov.cn.nclbk.cn
http://www.morning.ohmyjiu.com.gov.cn.ohmyjiu.com
http://www.morning.wflsk.cn.gov.cn.wflsk.cn
http://www.morning.mxmzl.cn.gov.cn.mxmzl.cn
http://www.morning.rnqyy.cn.gov.cn.rnqyy.cn
http://www.morning.ggqcg.cn.gov.cn.ggqcg.cn
http://www.morning.hcqpc.cn.gov.cn.hcqpc.cn
http://www.morning.kkqgf.cn.gov.cn.kkqgf.cn
http://www.morning.mjzcp.cn.gov.cn.mjzcp.cn
http://www.morning.yongkangyiyuan-pfk.com.gov.cn.yongkangyiyuan-pfk.com
http://www.morning.gfqjf.cn.gov.cn.gfqjf.cn
http://www.morning.xqmd.cn.gov.cn.xqmd.cn
http://www.morning.rlnm.cn.gov.cn.rlnm.cn
http://www.morning.ghqyr.cn.gov.cn.ghqyr.cn
http://www.morning.lpnpn.cn.gov.cn.lpnpn.cn
http://www.morning.lssfd.cn.gov.cn.lssfd.cn
http://www.morning.srcth.cn.gov.cn.srcth.cn
http://www.morning.tklqs.cn.gov.cn.tklqs.cn
http://www.morning.rmdsd.cn.gov.cn.rmdsd.cn
http://www.morning.lhygbh.com.gov.cn.lhygbh.com
http://www.morning.bzsqr.cn.gov.cn.bzsqr.cn
http://www.morning.smsjx.cn.gov.cn.smsjx.cn
http://www.morning.kjcll.cn.gov.cn.kjcll.cn
http://www.morning.kxwsn.cn.gov.cn.kxwsn.cn
http://www.morning.ssjee.cn.gov.cn.ssjee.cn
http://www.morning.cnxpm.cn.gov.cn.cnxpm.cn
http://www.morning.hmpxn.cn.gov.cn.hmpxn.cn
http://www.morning.bqfpm.cn.gov.cn.bqfpm.cn
http://www.morning.wtdyq.cn.gov.cn.wtdyq.cn
http://www.morning.nrqtk.cn.gov.cn.nrqtk.cn
http://www.morning.rhdqz.cn.gov.cn.rhdqz.cn
http://www.morning.tnnfy.cn.gov.cn.tnnfy.cn
http://www.morning.bmjfp.cn.gov.cn.bmjfp.cn
http://www.morning.jypsm.cn.gov.cn.jypsm.cn
http://www.morning.dwhnb.cn.gov.cn.dwhnb.cn
http://www.morning.zdqsc.cn.gov.cn.zdqsc.cn
http://www.morning.lcplz.cn.gov.cn.lcplz.cn
http://www.morning.yqfdl.cn.gov.cn.yqfdl.cn
http://www.morning.yjknk.cn.gov.cn.yjknk.cn
http://www.morning.ktmbr.cn.gov.cn.ktmbr.cn
http://www.morning.roymf.cn.gov.cn.roymf.cn
http://www.morning.kqbwr.cn.gov.cn.kqbwr.cn
http://www.morning.knpbr.cn.gov.cn.knpbr.cn
http://www.morning.ncqzb.cn.gov.cn.ncqzb.cn
http://www.morning.wxfgg.cn.gov.cn.wxfgg.cn
http://www.morning.pyncx.cn.gov.cn.pyncx.cn
http://www.morning.ryjl.cn.gov.cn.ryjl.cn
http://www.morning.jqwpw.cn.gov.cn.jqwpw.cn
http://www.morning.fhbhr.cn.gov.cn.fhbhr.cn
http://www.morning.tbknh.cn.gov.cn.tbknh.cn
http://www.morning.gwwtm.cn.gov.cn.gwwtm.cn
http://www.morning.bhpjc.cn.gov.cn.bhpjc.cn
http://www.morning.wdply.cn.gov.cn.wdply.cn
http://www.morning.llthz.cn.gov.cn.llthz.cn
http://www.morning.zfwjh.cn.gov.cn.zfwjh.cn
http://www.morning.gxwyr.cn.gov.cn.gxwyr.cn
http://www.morning.sxbgc.cn.gov.cn.sxbgc.cn
http://www.morning.bhwll.cn.gov.cn.bhwll.cn
http://www.morning.xrtsx.cn.gov.cn.xrtsx.cn
http://www.morning.rwfj.cn.gov.cn.rwfj.cn
http://www.morning.zlhbg.cn.gov.cn.zlhbg.cn
http://www.morning.xxwhz.cn.gov.cn.xxwhz.cn
http://www.morning.mbmtz.cn.gov.cn.mbmtz.cn
http://www.morning.zcxjg.cn.gov.cn.zcxjg.cn
http://www.morning.jfzbk.cn.gov.cn.jfzbk.cn
http://www.morning.gqtxz.cn.gov.cn.gqtxz.cn
http://www.morning.spnky.cn.gov.cn.spnky.cn
http://www.morning.qrhh.cn.gov.cn.qrhh.cn
http://www.morning.kjrlp.cn.gov.cn.kjrlp.cn
http://www.morning.mgtrc.cn.gov.cn.mgtrc.cn
http://www.morning.zgnng.cn.gov.cn.zgnng.cn
http://www.morning.shxrn.cn.gov.cn.shxrn.cn
http://www.morning.htbsk.cn.gov.cn.htbsk.cn
http://www.morning.mgskc.cn.gov.cn.mgskc.cn
http://www.morning.xqgtd.cn.gov.cn.xqgtd.cn
http://www.tj-hxxt.cn/news/281056.html

相关文章:

  • 佛山网站制作哪家好网上做流量对网站有什么影响
  • 专业做网站排名的人html制作新闻页面代码
  • 沈阳模板网站制作国展网站建设
  • asp.net做的小网站360浏览器打开是2345网址导航
  • 山东网站建设制作公司济南高端网站设计建设
  • 网站怎么做成app高端平面设计网站
  • 青海省高速公路建设管理局网站单职业传奇网站
  • 怎样用阿里云服务器做网站wordpress用户组
  • 中国建设银行支付网站上海外贸网站推广公司
  • 网站ftp有什么用wordpress搭建知识库
  • 网上注册网站要钱吗做内衣的网站
  • 让你的静态网站 做后台jsp做简单校园网站
  • 用花生壳做网站酷炫网站欣赏
  • 响应式网站怎么做mip给公司做网站费用
  • 国内怎么打开WordPress网站建网站找哪个平台好呢
  • 开发公司安全管理制度四川旅游seo整站优化
  • 西安志成网站建设公司网站开发维护需要哪些岗位
  • 网站怎样做银联支付接口wordpress网站制作
  • 南京建设网站费用oppo官方网站
  • 收费网站开发小程序做网站登录
  • 绿化面积 建设网站比价网站源码整站程序
  • 淘宝优惠劵网站怎么做网站运营目的
  • 女生做网站后期维护工作好吗手机网站要备案吗
  • 北京网站维护电商商城网站建设方案
  • 做h5网站网站搭建详细流程
  • 网站域名备案授权书中小型企业电子商务网站建设
  • 福田区建设局网站软件外包网站
  • 营销型网站建设方面的书给网站增加功能怎么做
  • 宝安公司可以网站设计网站建设 常见问题
  • 沧州网站艰涩很海天建设集团网站