day18总结

编程

1.DNS服务器:解析域名和ip地址

2.计算机连网的时候就会有ip地址(动态的)

3.mac地址是唯一的,每一个设备的mac地址不一样,

4.OSI参考模型————7层

应用层,表示层,会话层,传输层(做后端主要接触到这4个)
网络层,数据链路层,物理层

1.什么是socket编程?

socket -- 又叫套接字,指的是实现通信的两个端,这两个端又分为服务器端套接字和客户端套接字。
一个服务器可对应多个客户端,服务器不主动发起回话,只参与。

2.服务器套接字

Python中提供了一个socket模块来支持socket编程

1)创建套接字对象(买电话机)

a. socket(family = AF_INET, type = SOCK_STREAM)
b. family -- 设置ip类型;AF_INET - ipv4, AF_INET - ipv6
c. type -- 设置数据的传输方式;SOCK_STREAM - TCP, SOCK_DGRAM - UDP

server = socket.socket()

2)绑定ip和端口(查电话线)

server.bind((ip地址,端口号)) -- 绑定
ip地址 - 字符串;服务器运行在哪台计算机上ip地址就写哪台计算机的ip地址
端口号 - 整型;范围是0-65535,其中0-1024是著名端口,有自己特殊的意义一般不随便用

3)等待客户端连接,并且设置同一时间能够接收的请求数量

server.listen(512)

4)让服务器保持一直运行的状态

while True:
#####5)接收请求(接电话)
connect, address = server.accept -- (当程序执行到accept的时候会停下来,直到有客户端给当前服务器发送请求为止)
######6)接收客户端发送的数据(听别人将电话)
recv(数据大小) --接收数据并且设置一次性能够接收最大的数据
注意:二进制转字符串
二进制对象.decode(encoding='utf-8')
str(二进制对象, encoding='utf-8')

recv_data=connect.recv(1024) - 按1kb切成多段发送,此次产生的数据是二进制
######7)给客户端发送数据(说话给别人听)
send(数据) -- 发送数据,数据类型必须是bytes
connect.send('HTTP/1.1 200 OK\r\n\r\n hello socket'.encode())#服务器发给客户端的

######8)关闭连接(挂电话)
connect.close()

3.客户端套接字

1)创建套接字对象(买电话机)

client = socket.socket()

2) 发送请求(打电话)

client.connect((host, port))--连接哪个服务器就写哪个host和port

3)发送消息

client.send('你好服务器'.encode())

4)接收消息

re_data = client.recv(1024)
print(re_data.decode(encoding='utf-8'))
client.close()

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 网络编程 一.楔子 你现在已经学会了写python代码,假如你写了两个python文件a.py和b.py,分别去运...
    go以恒阅读 2,097评论 0 6
  • 1.什么是socket编程 """socket又叫套接字, 指的是实现通信的两个端;这个两个端又分为服务器套接字和...
    oct___我婷姐阅读 129评论 0 0
  • 1. 什么是socket编程 socket又叫套接字, 指的是实现通信的两个端;这个两个端又分为服务器套接字和客户...
    酒煮灬核弹头阅读 205评论 0 0
  • """author = Zard"""import socket 1.什么是socket socket 又叫套接字...
    Zard泉水阅读 142评论 0 0
  • 内容来自《原则》 1. 先弄明白问题所在,然后再决定怎么做 2. 区分直接原因和根本原因 3. 认识到了解人(包括...
    kafkaliu阅读 223评论 0 0