当前位置:首页 > 学习笔记 > 正文内容

socket概述 python中如何使用TCP/UDP协议实现通信-教程

廖万里2年前 (2023-05-31)学习笔记22683

很多编程语言中,都使用scoket套接字实现网络通信。

Socket是对TCP/IP协议的封装,Socket本身就是一个调用接口(API),方便程序员用Socket使用TCP/IP协议簇,实现网络通信。

不同编程语言,shiyongSocket通信的语法有所区别,但基本原理类型相似。

它的两种方式,分别是TCP和UDP协议:

TCP和UDP都隶属于TCP/IP协议簇。

TCP是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。

UDP是一个非链接的协议,传输数据前 源端 和 终端 不建立连接,当它想传送时就简单地去传输和抓取数据。效率高,速度快,可靠性地。

如何使用TCP的方式实现通信?

1.编写客户端:发送消息给服务端 

1,导入模块(自行下载模块,其他文章有说明怎么下载第三方模块):

from socket import *

2,编写代码:

#创建socket对象#AF_UNIX本机通信 AF_INET(IPV4) AF_INET6(IPV6)#SOCK_STREAM(TCP)  SOCK_DGRAM(UDP) s=socket(AF_INET,SOCK_STREAM)#和目标建立连接s.connect(("localhost",6363)) #localhost代表本机 也可以写通局域网下其他人的ip 后面端口随便写个没使用的#发送消息s.send("你好!服务端!".encode())  #.encode()对字符串进行编码#关闭sockets.close()

2.编写服务端:接收客户端消息并显示

 1,和客户端一样,导入socket模块。

from socket import *

 2,编写代码:

#创建socket对象 s=socket(AF_INET,SOCK_STREAM)#绑定监听端口s.bind(("localhost",6363))#监听s.listen()#等待消息conn,adr=s.accept()#接收信息msg=conn.recv(1024) #接收信息的最大字节print("--------:",msg.decode())

s.close()

运行测试:

先使用python自带的IDLE编辑器,运行服务端。

socket概述 python中如何使用TCP/UDP协议实现通信-教程编辑

 运行客户端:

 socket概述 python中如何使用TCP/UDP协议实现通信-教程编辑

 正常执行成功无错误,查看服务端信息正常接收即可。

socket概述 python中如何使用TCP/UDP协议实现通信-教程编辑


 说完TCP协议,那么如何使用UDP的方式实现通信?

udp协议是无连接的协议,所以在发送是不需要建立连接的。

和tcp传输差不多,但是udp不需要建立连接,直接发送信息就可以了。

客户端:

1,导入socket模块:

from socket import *

2,编辑代码:

#创建socket对象#AF_UNIX本机通信 AF_INET(IPV4) AF_INET6(IPV6)#SOCK_STREAM(TCP)  SOCK_DGRAM(UDP) s=socket(AF_INET,SOCK_DGRAM)#发送信息while 1==1:
	msg=input("---------<<:")
	s.sendto(msg.encode(),("localhost",3435))#关闭sockets.close()

服务端:

1,同上需要导入socket包!

from socket import *import time

2,编写代码:

#创建socket对象 s=socket(AF_INET,SOCK_DGRAM)#绑定端口s.bind(("localhost",3435))#接收信息while 1==1:
	msg=s.recv(1024)	print("----:",msg.decode())

s.close()

运行程序测试,先开服务端,后开客户端。运行程序的方法和上方tcp一样!

socket概述 python中如何使用TCP/UDP协议实现通信-教程编辑



本文链接:https://www.kkkliao.cn/?id=291 转载需授权!

分享到:

版权声明:本文由廖万里的博客发布,如需转载请注明出处。


“socket概述 python中如何使用TCP/UDP协议实现通信-教程” 的相关文章

PHP环境搭建(推荐宝塔面板)

PHP环境搭建(推荐宝塔面板)

初学者推荐安装集成环境,不建议分别安装,集成环境包含php、mysql、apache、其他php、mysql、apache分别安装的需要相互之间配置,对初学者不友好,一般开发也不需要,特殊生产环境才需要;Windows:宝塔面板(推荐)、phpstudy(https://www.xp.cn/)Mac...

【新手建站教学】服务器如何安装宝塔?宝塔如何部署php项目?

【新手建站教学】服务器如何安装宝塔?宝塔如何部署php项目?

有小白问买了服务器怎么搭建网站,网上找的源码不会安装,想让我写个教学。提前准备:1,一个域名2,一台服务器(使用海外的不需要备案)3,网上找一个或者淘宝买一个网站php的源码4,一名整装待发的小白服务器系统使用最多的有 Linux跟Windows,我比较推荐推荐安装Linux的CentOS系统。如果...

如何选择服务器?大厂与小厂的区别是什么

如何选择服务器?大厂与小厂的区别是什么

什么云服务器好?这个无法以偏概全的直接指定一家服务商,针对云服务器的选择自己有些建议可以供您参考:首先,要了解自己的业务具体是什么?应用场景是什么?对于安全要求又是什么?其实上云是大势所趋,在前几年大家对于云的使用可能更关注于安全,在当前网络安全快速发展的今天,大可以放开安全这个层面的东西,去考虑使...

有人给你发了匿名短信

有人给你发了匿名短信

【匿名短信】终于和大家见面了!每个人的心中,应该都会有一些忘不了的人或事!也许是遗憾的,是痛苦的,亦或是开心的,是幸福的...但最让你忘不了的,还是那个陪你创造回忆的TA...现在的你们,也许断了联系,没了交谈,但心里时不时却还会念着对方...【匿名短信】的上线,就是为了帮助你去和心中的Ta对话只需...

Python所有的库都在这里了!!强烈建议收藏

Python所有的库都在这里了!!强烈建议收藏

前言嗨喽,大家好呀~又到了学Python时刻~随着大数据和人工智能的发展,Python也与多种科技深深绑定。比如自动化测试,运维,爬虫,数据分析,机器学习,金融领域,后端开发,云计算,游戏开发都有涉及。万丈高楼平地起,Python这座大厦能够如此强大,就是拥有强大的成千上万的库的支持无数牛x的轮子在...

万策云网络工作室旗下高性能服务器,保证用户数据安全

万策云网络工作室旗下高性能服务器,保证用户数据安全

万策云工作室旗下所有业务均使用1T高防高性能服务器,数据定时备份,多台服务器实时同步数据,保障用户数据安全!多台服务器定时备份,企业级安全,50m独享,大带宽抗cc文件实时同步备份,数据库定时备份。主服务器采用T级群防,150G单机防御的国内高性能服务器。秒解机器!真实可测客户数据丢了都可以找回来...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。