【第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()
别跑,点个赞再走