python-study-29

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python-study-29相关的知识,希望对你有一定的参考价值。

复习

技术分享图片
上节课复习:
    1、C/S B/S
        client----- server
        browser-----server

        其中服务端必须具备:
            1、稳定运行,对外一直提供服务
            2、绑定一个固定的ip+port

    2、互联网:
        2.1 物理连接介质
        2.2 互联网协议(互联网协议即计算机界的英语)

    3、tcp
         三次握手

         半连接池backlog=5
            限制的同一时刻的请求数而非连接数

         四次挥手断开连接


 今日内容:
    1、基于socket编写C/S架构的软件
        基于tcp协议

    2、tcp协议的粘包问题
View Code

 

基于tcp协议的套接字通信

技术分享图片
import socket

#1、买手机
phone=socket.socket(socket.AF_INET,socket.SOCK_STREAM) #tcp称为流式协议,udp称为数据报协议SOCK_DGRAM
# print(phone)

#2、插入/绑定手机卡
# phone.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
phone.bind((127.0.0.1,8080))

#3、开机
phone.listen(5) # 半连接池,限制的是请求数

#4、等待电话连接
print(start....)
while True: # 连接循环
    conn,client_addr=phone.accept() #(三次握手建立的双向连接,(客户端的ip,端口))
    # print(conn)
    print(已经有一个连接建立成功,client_addr)

    #5、通信:收发消息
    while True: # 通信循环
        try:
            print(服务端正在收数据...)
            data=conn.recv(1024) #最大接收的字节数,没有数据会在原地一直等待收,即发送者发送的数据量必须>0bytes
            # print(‘===>‘)
            if len(data) == 0:break #在客户端单方面断开连接,服务端才会出现收空数据的情况
            print(来自客户端的数据,data)
            conn.send(data.upper())
        except ConnectionResetError:
            break
    #6、挂掉电话连接
    conn.close()

#7、关机
phone.close()
sever
技术分享图片
import socket

#1、买手机
phone=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# print(phone)
#2、拨电话
phone.connect((127.0.0.1,8080)) # 指定服务端ip和端口

#3、通信:发收消息
while True: # 通信循环
    msg=input(>>: ).strip() #msg=‘‘
    if len(msg) == 0:continue
    phone.send(msg.encode(utf-8))
    # print(‘has send----->‘)
    data=phone.recv(1024)
    # print(‘has recv----->‘)
    print(data)

#4、关闭
phone.close()
client

 

访问过程 应用层数据--os(协议层:端口,加tcp头,加ip头,找网关mac,二进制数----网络传输----物理层,数据层,网络层,传输层,应用层)

dns:横向递归查询  纵向迭代查询

 

以上是关于python-study-29的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段6——CSS选择器

VSCode自定义代码片段——声明函数