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

2019-09-28  本文已影响0人  36140820cbfd

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()
别跑,点个赞再走
上一篇下一篇

猜你喜欢

热点阅读