socket模块

1.socket模块

socket是Python中的一种数据结构====>套接字

socket模块是用于网络通信的模块,主要是用于tcp的server端和client端的搭建,以及udp的server端和client端的搭建,在搭建服务端的时候,要注意的是:

server端: 

ip地址:

几个常见的ip地址的区别:

1.   127.0.0.1用于测试,这个是回环地址,采用该ip后不会走交换机,仅限在本机

2.    0.0.0.0的作用在不同的机器中代表的含义不同,具体的如下:

  • 在服务器中,0.0.0.0指的是本机上的所有IPV4地址,如果一个主机有两个IP地址,192.168.1.1 和 10.1.2.1,并且该主机上的一个服务监听的地址是0.0.0.0,那么   通过两个ip地址都能够访问该服务。
  • IPV4中,0.0.0.0地址被用于表示一个无效的,未知的或者不可用的目标。 
  • 在路由中,0.0.0.0表示的是默认路由,即当路由表中没有找到完全匹配的路由的时候所对应的路由。         

3.    localhost一般是等同于127.0.0.1,不过载Ubuntu上忽悠区别

一般我们在服务端定义一个变量时要注意的是ip地址,测试使用127.0.0.1,ipv4的ip地址,0.0.0.0,localhost都可以,除了localhost和127.0.0.1不能用于局域网内的通信,其余两个都可以实现

端口(port):

端口:可以浅显的理解为操作系统给予,通过端口号,可以确定某一个应用程序,应用程序间的通信时通过端口和ip实现的

一共有65535个,8000以前的端口是留给操作系统备用的

在服务的开一个端口的话,客户端如果要连接的话一定要端口一致才能通信

缓冲(buffersize):

这里是设置缓冲接受多少字节

下面是TCP_Server的代码:

复制代码
 1 from socket import *
 2 from time import ctime
 3 
 4 # 主机常量
 5 HOST = ''
 6 PORT = 9999
 7 BUFFERSIZE = 1024
 8 ADDR = (HOST, PORT)
 9 
10 # 实例化对象,绑定地址并启用监听
11 tcpSerSoc = socket()
12 tcpSerSoc.bind(ADDR)
13 tcpSerSoc.listen()
14 
15 conn, addr = tcpSerSoc.accept()
16 ret = conn.recv(BUFFERSIZE).decode('utf-8')
17 
18 print(ret)
19 
20 t = ctime()
21 conn.send(t.encode('utf-8'))
22 
23 conn.close()
24 
25 tcpSerSoc.close()
tcpSerSoc
复制代码

client端:

client端要注意的是要连接的服务端的ip地址和端口,在Python3中发送的内容要以bytes类型发送

下边是TCP_Client端的代码:

复制代码
 1 from socket import *
 2 from time import ctime
 3 
 4 # 主机常量
 5 HOST = 'localhost'
 6 PORT = 9999
 7 BUFFERSIZE = 1024
 8 ADDR = (HOST, PORT)
 9 
10 tcpCliSoc = socket()
11 tcpCliSoc.connect(ADDR)
12 
13 tcpCliSoc.send(b'hello')
14 data = tcpCliSoc.recv(BUFFERSIZE).decode('utf-8')
15 
16 print(data)
17 
18 tcpCliSoc.close()
tcpCliSoc
复制代码

要运行的话先要开启服务端,在开启客户端

posted @   咕咚!  阅读(640)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示