当前位置:首页 > 奇闻趣事

socket编程实例 Python网络编程socket模块实例解析

网络也是IO的一种。在Python中,有一个特殊的套接字模块来处理网络操作。

Socket,又叫“socket”,用来描述IP地址和端口,是一个通信链的句柄。应用程序通常通过“套接字”向网络发送请求或回答网络请求。

Socket起源于Unix,而Unix/Linux的一个基本哲学就是“一切都是文件”,文件以[打开]、[读/写]和[关闭]的模式运行。套接字就是这种模式的一种实现。socket是一个特殊的文件,一些socket函数对其进行操作(读/写IO,打开和关闭)。

(1)简单链接使用套接字

Python中的套接字支持UDP、TCP和进程间通信。socket可以封装我们想要发送的东西,把它发送过去,然后把它反转到原来的样子。其实网络通信可以理解成成都是建立在socket之上的。下面的代码是为了演示使用socket的简单链接。

#要进行通信,必须至少有两个人,即服务器和客户端

#服务器端

' '必须先打开,等待客户端做出链接请求,所以你首先要有一个地址,也就是IP,还要有自己的端口,没有这个端口你是进不去的。'''

导入套接字

Sk= socket.socket()#创建对象

sk . bind(' 127 . 0 . 0 . 1 ',9999,)#绑定IP和端口,并将其作为元组传入

Sk .听(5)#当前面的链接已经建立时,让最多五个人在后面等待。

当为真时:#将服务器置于总是可以接受客户端请求的状态

conn,address=sk.accept()

打印(连接器,地址)

'''

监听端口、等待和接受客户端的请求可能会被阻止。主要功能是建立链接并接受客户信息

Conn相当于双方建立的这个环节,然后相互沟通就靠这个环节;

地址指的是对方的IP和端口

'''

以下是客户端代码

#客户端

导入套接字

obj =socket.socket()

与客户端相比,决定链接到谁很好

'''

Obj.connect (('127.0.0.1 ',9999,)#链接服务器

obj.close()#链接后关闭

我们先启动服务器,再启动客户端,如图

('127.0.0.1', 36126)

& ltsocket.socket fd=5,family=AddressFamily。AF_INET,type=SocketKind。SOCK_STREAM,proto=0,laddr=('127.0.0.1 ',9999),raddr=('127.0.0.1 ',36128)>('127.0.0.1', 36128)

& ltsocket.socket fd=4,family=AddressFamily。AF_INET,type=SocketKind。SOCK_STREAM,proto=0,laddr=('127.0.0.1 ',9999),raddr=('127.0.0.1 ',36130)>('127.0.0.1', 36130)

成功打印每个链接,以及客户端的IP和端口号

(2)基于套接字的简单消息传输

#服务器端

导入套接字

sk= socket.socket()

sk . bind(' 127 . 0 . 0 . 1 ',9999,)#绑定IP和端口,并将其作为元组传入

Sk .听(5)#当前面的链接已经建立时,让最多五个人在后面等待。

当为真时:#将服务器置于总是可以接受客户端请求的状态

Conn,address=sk.accept()#发送基于conn的东西

conn . sendall(bytes(' has空天天来Linux公社给你新知识',编码= ' utf-8 ')# python 3应该用字节类型发送字节

''一旦建立链接,服务器将发送此字段'''

打印(连接器,地址)

然后使用客户端代码

#客户端

导入套接字

obj =socket.socket()

与客户端相比,决定链接到谁很好

'''

Obj.connect (('127.0.0.1 ',9999,)#链接服务器

'''

客户端链接到服务器。如果服务器不向客户端返回消息,客户端将始终

在recv状态,我一直在等待来自服务器的消息

'''

Result1= obj.recv(2014)#表示接收的最大字节数为1024,超过了下一次接收。

result2= str(result1,编码='utf-8 ')

打印(结果2)

obj.close()#链接后关闭

当您启动客户端一次并建立链接时,您将收到一条消息,如下图所示

'''

客户端链接到服务器。如果服务器不向客户端返回消息,客户端将始终

在recv状态,我一直在等待来自服务器的消息

'''

Result1= obj.recv(2014)#表示接收的最大字节数为1024,超过了下一次接收。

result2= str(result1,编码='utf-8 ')

打印(结果2)

虽然真实:

Data = input('请输入您想要发送的内容:')

if data == 'q ':

obj.sendall(字节(数据,编码='utf-8 '))

打印(“链接断开”)

打破

else:

obj.sendall(字节(数据,编码='utf-8 '))

Rec_byte = obj.recv(1024)#发送后接收信息

rec_str = str(rec_byte,编码='utf-8 ')

打印(rec_str)

obj.close()#链接后关闭

结果如图所示

'''

客户端链接到服务器。如果服务器不向客户端返回消息,客户端将始终

在recv状态,我一直在等待来自服务器的消息

# '''

#obj.sendall(字节(' hello ',编码='utf-8 '))

ret_bytes = obj.recv(1024)

ret_str = str(ret_bytes,编码='utf-8 ')

打印(ret_str)

#发送文件大小

size = OS . stat(' linu xdc . png ')。获取文件大小

Obj。sendall(字节(str (size),编码= ' utf-8 '))# int类型的文件大小,必须先转换为字符串

open(' linu xdc . png ',' rb ')为f:

对于f中的行:

obj.sendall(行)

obj.close()

有关Python的更多信息,请参见Python特别页面https://www.linuxidc.com/topicnews.aspx? tid = 17

Linux社区的RSS地址:https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址:https://www.linuxidc.com/Linux/2018-12/156062.htm

1.《socket编程实例 Python网络编程socket模块实例解析》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《socket编程实例 Python网络编程socket模块实例解析》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guonei/1038823.html

上一篇

万物皆可云 这意味着什么?

下一篇

新台风米娜生成 还原事发经过及背后原因!

dell服务器报价 南京戴尔专卖店珠江路DELL笔记本、台式机、服务器工作站报价

  • dell服务器报价 南京戴尔专卖店珠江路DELL笔记本、台式机、服务器工作站报价
  • dell服务器报价 南京戴尔专卖店珠江路DELL笔记本、台式机、服务器工作站报价
  • dell服务器报价 南京戴尔专卖店珠江路DELL笔记本、台式机、服务器工作站报价

linux创建文件 如何使用ln命令在Linux中创建符号链接

  • linux创建文件 如何使用ln命令在Linux中创建符号链接
  • linux创建文件 如何使用ln命令在Linux中创建符号链接
  • linux创建文件 如何使用ln命令在Linux中创建符号链接
ofo回应退押金难 退款时间延长系因服务器搬迁

ofo回应退押金难 退款时间延长系因服务器搬迁

最近很多市民反映郑州ofo的押金很难退。拿到账号花了好几个小时,现在花了好几天,还有人15个工作日了还没收到退款。客服电话没人接,一直说“对不起,你要的电话占线。”。对此,ofo回应说押金很难退,ofo小黄车PR女士回应说...

战争雷霆下载 战争雷霆客户端文件损坏这么解决

战争雷霆下载 战争雷霆客户端文件损坏这么解决

《战雷》于本月4日正式上映,这个模拟真实战争的网络游戏也吸引了众多玩家的关注。但是最近很多玩家客户端文件坏了,不能运行游戏。我该怎么办?边肖今天给你带来了一个解决方案。过来看看。 《战雷》于本月4日正式上映,这个模拟真实战争的网络游戏也吸引了众多玩家的关注。但是最近很多玩家客户端文件坏了,不...

方舟连接超时 方舟生存进化服务器进不去、服务器连接超时怎么办

方舟连接超时 方舟生存进化服务器进不去、服务器连接超时怎么办

其实早在方舟生存进化之初,就有很多正版玩家举报方舟生存进化服务器进不去,服务器连接超时。但是,当时并没有引起很多玩家的注意。但是随着玩家数量的增加,服务器是否进不去的问题又被提了出来。接下来,边肖将向你介绍方舟生存进化服务器进不去的最新解决方案。 服务器进不去服务器连接超时怎么办?其实早在方...

软天空破解游戏下载 软天空游戏盒子客户端_软天空破解游戏盒子下载

软天空破解游戏下载 软天空游戏盒子客户端_软天空破解游戏盒子下载

想知道哪个游戏盒好用?今天,边肖推荐了一款好用的破解游戏盒——Soft Sky空游戏盒客户端。Soft Sky 空 Game Box Client是一款游戏收藏软件,每天都有大量的游戏资源下载和推出新游戏。软件里有更多的破解柱和bt柱,还有很多好处,都在等你免费体验。因此,边肖将为您带来最新...

大话福建 大话西游2合服历史:独家整理 寻找你最初的服务器

《西游二》经历了36次服役。服务器合并后,客服区会删除合并前的服务器,保留合并服务器的名称;所以有玩家反映提交问题时找不到自己的服务器。在这种情况下,建议您仔细检查以下服务列表: 如果忘记了账号所在的服务器,可以运行游戏,开始新的登录模式。输入帐户密码后,将显示帐户创建字符的服务器。 第三十...

香港ip 香港多IP站群服务器怎么样?为什么要推荐香港站群服务器?

香港ip 香港多IP站群服务器怎么样?为什么要推荐香港站群服务器?

对于网站SEO,优化排名的方法有很多。其中,建立网站群是SEO优化常用的方法。因为简单快捷,受到站长们的青睐。现在很多站长都喜欢做站群的网站,乐此不疲。  由于网站群中要建立数百个网站,虚拟主机负担不起。所以很多用户喜欢租服务器建站群网站,特别是多个独立的IP服务器,性价比很高,适合建站群网...