码迷,mamicode.com
首页 > 编程语言 > 详细

python-study-29

时间:2018-07-07 00:22:24      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:一个   ==   递归   协议   eve   粘包   数据报   hid   client   

复习

技术分享图片
上节课复习:
    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

标签:一个   ==   递归   协议   eve   粘包   数据报   hid   client   

原文地址:https://www.cnblogs.com/xujinjin18/p/9275918.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!