Então eu tenho este servidor python que apenas retorna a sentença em maiúscula que veio como uma entrada:
from socket import *
serverPort = 12000
serverSocket = socket(AF_INET, SOCK_DGRAM)
serverSocket.bind(('192.168.1.2', serverPort))
print "The server is ready to receive on port: {}".format(serverPort)
while 1:
message, clientAddress = serverSocket.recvfrom(2048)
print clientAddress, message
modifiedMessage = message.upper()
serverSocket.sendto(modifiedMessage, clientAddress)
Deste cliente:
from socket import *
serverName = "192.168.1.3"
serverPort = 12000
clientSocket = socket(AF_INET, SOCK_DGRAM)
message = raw_input("Input lowercase sentence:")
clientSocket.sendto(message,(serverName, serverPort))
modifiedMessage, serverAddress = clientSocket.recvfrom(2048)
print modifiedMessage
clientSocket.close()
Tudo funciona como esperado em localhost
, mas quando executo server.py
em uma máquina e execuo client.py
em outra máquina, o cliente não consegue entrar em contato com server.py
.
Além disso, não consigo me conectar a server.py
via telnet
na mesma máquina em que server.py
está sendo executado)
Aqui está o traceback:
Connecting To 192.168.1.2...Could not open connection to the host, on port 12000: Connect failed
Agora cheirei alguns pacotes usando o Wireshark e, surpreendentemente, o protocolo contra este pacote foi LLC
em vez de UDP
e o campo de dados era:
Data: 74:5f:32:20:61:6e:64:72:6f:69:64
[Length: 11]
Peço desculpas se a diferença é trivial, mas acabei de iniciar a programação de socket e isso está me incomodando.