2
UDPサーバ:UDPサーバとUDPクライアントの違い:sock.bind((host、port))はクライアント側かサーバ側か?
# -*- 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クライアント:
# -*- coding: utf-8 -*-
#!/usr/bin/python3
#client UDP
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))
# 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)
# Recebemos uma resposta 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()
コードが働いているが、私は、サーバーまたはクライアントが何であるかわからない:UDPサーバーおよびUDPクライアント間の違い:靴下.bind((host、port))はクライアント側かサーバー側か?
本当にTCPとのようには、 "サーバ・クライアント" の関係はありません。複数のプログラムが中央プログラムと通信している場合、中央プログラムは「サーバ」と呼ばれ、他のプログラムは「クライアント」と呼ばれることがあります。あるいは、あなたが*サービス*を提供するプログラムを持っていれば、それは "サーバ"と見なされるかもしれませんが、この*サービス*を要求する他のプログラムはどんなものでもクライアントと見なすことができます。 –
@JoachimPileborg、ありがとう。 ?だから、私は((ホスト、ポート)「クライアント」をsock.bindたスクリプトを呼び出した場合、それは間違っているだろう、それはindistinguibleされているサーバ(受信機)側で –
;ここEJPからの回答を参照してください?のhttp:/ /stackoverflow.com/questions/6189831/whats-the-purpose-of-using-sendto-recvfrom-instead-of-connect-send-recv-with-ud – VPfB