day028 Tcp和Udp协议
生活随笔
收集整理的這篇文章主要介紹了
day028 Tcp和Udp协议
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
# # tcp和udp的區別
# tcp協議:面向連接,消息可靠,傳輸速度慢,消息是面向流的,無消息保護邊界
# udp協議:面向無連接,消息不可靠,傳輸速度快,消息是面向包的,有消息保護邊界
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()
# tcp協議:面向連接,消息可靠,傳輸速度慢,消息是面向流的,無消息保護邊界
# udp協議:面向無連接,消息不可靠,傳輸速度快,消息是面向包的,有消息保護邊界
tcp服務端
import socketserver=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()
轉載于:https://www.cnblogs.com/litieshuai/p/9832264.html
新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!總結
以上是生活随笔為你收集整理的day028 Tcp和Udp协议的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win7右键在桌面上转圈圈的解决办法
- 下一篇: BZOJ3784树上的路径