day028 Tcp和Udp协议
生活随笔
收集整理的這篇文章主要介紹了
day028 Tcp和Udp协议
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
# # tcp和udp的區(qū)別
# tcp協(xié)議:面向連接,消息可靠,傳輸速度慢,消息是面向流的,無(wú)消息保護(hù)邊界
# udp協(xié)議:面向無(wú)連接,消息不可靠,傳輸速度快,消息是面向包的,有消息保護(hù)邊界
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("用戶名或密碼錯(cuò)誤")
conn.send("用戶名或密碼錯(cuò)誤".encode("utf-8"))
print("連接斷開(kāi)中....")
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("請(qǐng)輸入用戶名和密碼輸入goodbey斷開(kāi)")
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=="用戶名或密碼錯(cuò)誤":
print(from_server_msg)
continue
client.close()
udp服務(wù)端 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("請(qǐng)輸入你要回復(fù)的內(nèi)容")
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("請(qǐng)輸入:")
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協(xié)議:面向連接,消息可靠,傳輸速度慢,消息是面向流的,無(wú)消息保護(hù)邊界
# udp協(xié)議:面向無(wú)連接,消息不可靠,傳輸速度快,消息是面向包的,有消息保護(hù)邊界
tcp服務(wù)端
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("用戶名或密碼錯(cuò)誤")
conn.send("用戶名或密碼錯(cuò)誤".encode("utf-8"))
print("連接斷開(kāi)中....")
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("請(qǐng)輸入用戶名和密碼輸入goodbey斷開(kāi)")
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=="用戶名或密碼錯(cuò)誤":
print(from_server_msg)
continue
client.close()
udp服務(wù)端 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("請(qǐng)輸入你要回復(fù)的內(nèi)容")
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("請(qǐng)輸入:")
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()
轉(zhuǎn)載于:https://www.cnblogs.com/litieshuai/p/9832264.html
新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎(jiǎng)!定制產(chǎn)品紅包拿不停!總結(jié)
以上是生活随笔為你收集整理的day028 Tcp和Udp协议的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: win7右键在桌面上转圈圈的解决办法
- 下一篇: BZOJ3784树上的路径