美文网首页
【第42天】python全栈从入门到放弃

【第42天】python全栈从入门到放弃

作者: 36140820cbfd | 来源:发表于2019-09-28 20:46 被阅读0次

    1 TCP三次握手和四次挥手

    tcp三次握手: 一定是client先发起请求

    a 客户端发起请求连接服务器

    b 服务器返回 : 接收到请求,并要求连接客户端

    c 客户端回复: 可以连接

    四次挥手: 谁先发起断开连接的请求都可以

    a 客户端发起断开连接的请求:

    意思是:我想和你断开连接,我没有数据要继续发送了,但是如果你有数据需要发送,我可以继续接收

    b 服务器回复 : 我接收到你的请求了

    c 服务器发送 : 我已经准备好断开连接了

    d 客户端回复 : 收到你的信息,断开连接

    2 使用tcp,客户端和服务端互相接收消息发送消息,输入q或者收到q终止运行

    客户端代码如下:

    import socket
    
    sk=socket.socket()
    
    sk.connect(('192.168.1.29',65535))
    
    while 1:
    
        msg_send=input('请输入对话内容:')
    
        sk.send(msg_send.encode('utf-8'))
    
        if msg_send=='q':
    
            print('客户端已经退出')
    
            break
    
        msg_recv=sk.recv(1024).decode('utf-8')
    
        if msg_recv=='q':
    
            print('服务端已退出')
    
            break
    
        print(msg_recv)
    
    sk.close()
    

    服务端代码如下

    import socket
    
    sk=socket.socket()
    
    sk.bind(('192.168.1.29',65535))
    
    sk.listen()
    
    while 1:
    
        conn,addr=sk.accept()
    
        while 1:
    
            msg_recv = conn.recv(1024).decode('utf-8')
    
            if msg_recv=='q':
    
                print('客户端已退出')
    
                break
    
            print('我接收到的信息是%s' % msg_recv)
    
            msg_send=input('请输入要发送的内容:').encode('utf-8')
    
            conn.send(msg_send)
    
            if msg_send=='q':
    
                print('服务端已经退出')
    
                conn.close()
    
                break
    
    sk.close()
    
    

    3 使用udp,客户端和服务端互相接收消息发送消息,输入q或者收到q终止运行

    客户端代码:

    代码块
    import socket
    
    sk=socket.socket(type=socket.SOCK_DGRAM)
    
    while 1:
    
        name=input('请输入消息:')
    
        sk.sendto(name.encode('utf-8'),('192.168.1.29',10086))
    
        msg=sk.recvfrom(1024)
    
        print(msg[0].decode('utf-8'))
    
    sk.close()
    

    服务端代码:

    代码块
    import socket
    
    sk=socket.socket(type=socket.SOCK_DGRAM)
    
    sk.bind(('192.168.1.29',10086))
    
    while 1:
    
        msg,addr=sk.recvfrom(1024)
    
        print(msg.decode('utf-8'))
    
        msg=input('请输入发送消息:')
    
        sk.sendto(msg.encode('utf-8'),addr)
    
    sk.close()
    
    别跑,点个赞再走

    相关文章

      网友评论

          本文标题:【第42天】python全栈从入门到放弃

          本文链接:https://www.haomeiwen.com/subject/halsyctx.html