UDP服务器和UDP客户端的区别:袜子绑定((主机、端口)在客户端还是服务器端?

2024-05-13 17:06:16 发布

您现在位置:Python中文网/ 问答频道 /正文

UDP服务器:

# -*- coding: utf-8 -*-
#!/usr/bin/python3
#server UDP

from socket import *

def main():
    # Cria host e port number
    host = ""
    port = 5000

    # Cria socket                  #UDP
    server = socket(AF_INET, SOCK_DGRAM)

    # Indica que o servidor foi iniciado
    print("Servidor iniciado")

    # Bloco infinito do servidor
    while True:
        # Recebe a data e o endereço da conexão
        print("server.recvfrom(1024)",server.recvfrom(1024))
        data, endereço = server.recvfrom(1024)

        # Imprime as informações da conexão
        print("Menssagem recebida de", str(endereço))
        print("Recebemos do cliente:", str(data))

        # Vamos mandar de volta a menssagem em eco
        resposta = "Eco=>" + str(data)
        server.sendto(data, endereço)

    # Fechamos o servidor
    server.close()

if __name__ == '__main__':
    main()

UDP客户端:

^{pr2}$

代码正在工作,但我不确定什么是服务器或客户端:UDP服务器和UDP客户端之间的区别:袜子绑定((主机、端口)在客户端还是服务器端?在


Tags: 服务器host客户端dataservermainportsocket
1条回答
网友
1楼 · 发布于 2024-05-13 17:06:16

{见回答:@vpa1}

模型服务器/客户端:

客户端是连接通信的部分,服务器是接收端。在

客户:

# -*- coding: utf-8 -*-
#!/usr/bin/python3

from socket import *

def main():
    # Cria host e port number
    host = "localhost"
    port = 5000

    # O servidor será um par endereço e port
    server = (host, port)

    # Criamos o socket
    sock = socket(AF_INET, SOCK_DGRAM)
    ##sock.bind((host, port)) #server side

    # Vamos mandar mensagem enquanto a mensagem for diferente de sair (s)
    msg = input("-> ")
    while msg != 's':
        # Mandamos a mensagem através da conexão
        sock.sendto(msg.encode(), server) #encode para enviar no formato de bytes

        # Recebemos uma respota do servidor
        data, endereco = sock.recvfrom(1024)

        # Imprimimos a mensagem recebida
        print("Recebida ->", str(data))

        # Podemos mandar mais mensagens
        msg = input("-> ")

    # Fechamos a conexão
    sock.close()

if __name__ == '__main__':
    main()

服务器:

^{pr2}$

相关问题 更多 >