• 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()


    
    
  • 相关阅读:
    《大道至简》第一章读后感,java伪代码形式
    chm文件内容无法显示的问题
    Windows下.py文件右键菜单的增删
    在ArchLinux中安装VMWare Workstation
    笔记本屏幕锁定
    pacman 日志摘要
    数据库事务特性和隔离级别
    数据库范式以及ER图
    《剑指offer》算法题第四天
    《剑指offer》算法题第二天
  • 原文地址:https://www.cnblogs.com/litieshuai/p/9832264.html
Copyright © 2020-2023  润新知