day028 Tcp和Udp协议

# # tcp和udp的区别
# tcp协议:面向连接,消息可靠,传输速度慢,消息是面向流的,无消息保护边界
# udp协议:面向无连接,消息不可靠,传输速度快,消息是面向包的,有消息保护边界

tcp服务端

import socket
server=socket.socket()
server_ip_port=("192.168.15.77",8002)
server.bind(server_ip_port)
server.listen()
while 1:
conn,addr=server.accept()
flag=0
while not flag:
from_client_msg=conn.recv(1024).decode("utf-8")
print(from_client_msg)
if from_client_msg=="goodbey":
break
with open("info",mode="r",encoding="utf-8") as f:
for line in f:
if line==from_client_msg:
print("登陆成功")
conn.send("登陆成功".encode("utf-8"))
flag=1
break
else:
print("用户名或密码错误")
conn.send("用户名或密码错误".encode("utf-8"))
print("连接断开中....")
conn.close()
server.close()
tcp客户端
import socket
client=socket.socket()
server_ip_port=("192.168.15.77",8002)
client.connect(server_ip_port)
while 1:
client_msg=input("请输入用户名和密码输入goodbey断开")
client.send(client_msg.encode("utf-8"))
if client_msg=="goodbey":
break
from_server_msg=client.recv(1024).decode("utf-8")
if from_server_msg=="登陆成功":
print(from_server_msg)
break
if from_server_msg=="用户名或密码错误":
print(from_server_msg)
continue
client.close()
udp服务端
import socket
from socket import SOL_SOCKET,SO_REUSEADDR
server=socket.socket(type=socket.SOCK_DGRAM)
server.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
server_ip_port=("192.168.15.77",8005)
server.bind(server_ip_port)
while 1:
from_client_msg,addr=server.recvfrom(1024)
from_client_msg=from_client_msg.decode("utf-8")
print(from_client_msg)
el = "sb"
if el in from_client_msg:
from_client_msg=from_client_msg.replace(el,"alexsb")
msg=input("请输入你要回复的内容")
msg=from_client_msg+msg
server.sendto(msg.encode("utf-8"),addr)
server.close()
udp客户端
import socket
client=socket.socket(type=socket.SOCK_DGRAM)
server_ip_port=("192.168.15.77",8005)
while 1:
msg=input("请输入:")
client.sendto(msg.encode("utf-8"),server_ip_port)
from_server_msg,addr=client.recvfrom(1024)
print(from_server_msg.decode("utf-8"))
client.close()



posted @ 2018-10-22 19:41  admin9s  阅读(166)  评论(0编辑  收藏  举报