zoukankan      html  css  js  c++  java
  • 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()


    
    
  • 相关阅读:
    记: Spring Data Jpa @OneToMany 级联查询被动触发的问题
    后端小白的Bootstrap笔记
    最短路径问题
    深度优先搜索 & 广度优先搜索
    检讨书板子
    关于计时器
    博客园美化
    P4819 杀人游戏 (图论 )
    水站 (二分)
    对拍
  • 原文地址:https://www.cnblogs.com/litieshuai/p/9832264.html
Copyright © 2011-2022 走看看