Networking 网络示例-IP地址

Networking 网络示例-IP地址,networking,udp,ip,udpclient,application-layer,Networking,Udp,Ip,Udpclient,Application Layer,我刚开始学习人际网络,并遵循Kurose和Ross的书。他们有以下python代码片段来说明UDP协议 简单客户端的代码如下所示: from socket import * serverName = ‘hostname’ # Use IP adresse here serverPort = 12000 clientSocket = socket(socket.AF_INET, socket.SOCK_DGRAM) message = raw_input(’Input lowercase

我刚开始学习人际网络,并遵循Kurose和Ross的书。他们有以下python代码片段来说明UDP协议

简单客户端的代码如下所示:

from socket import *
serverName = ‘hostname’     # Use IP adresse here
serverPort = 12000
clientSocket = socket(socket.AF_INET, socket.SOCK_DGRAM) 
message = raw_input(’Input lowercase sentence:’) 
clientSocket.sendto(message,(serverName, serverPort)) 
modifiedMessage, serverAddress = clientSocket.recvfrom(2048) 
print modifiedMessage
clientSocket.close()


from socket import *
serverPort = 12000
serverSocket = socket(AF_INET, SOCK_DGRAM) 
serverSocket.bind((’’, serverPort))
print ”The server is ready to receive” 
while 1:
    message, clientAddress = serverSocket.recvfrom(2048) 
    modifiedMessage = message.upper() 
    serverSocket.sendto(modifiedMessage, clientAddress)

服务器的代码由

from socket import *
serverName = ‘hostname’     # Use IP adresse here
serverPort = 12000
clientSocket = socket(socket.AF_INET, socket.SOCK_DGRAM) 
message = raw_input(’Input lowercase sentence:’) 
clientSocket.sendto(message,(serverName, serverPort)) 
modifiedMessage, serverAddress = clientSocket.recvfrom(2048) 
print modifiedMessage
clientSocket.close()


from socket import *
serverPort = 12000
serverSocket = socket(AF_INET, SOCK_DGRAM) 
serverSocket.bind((’’, serverPort))
print ”The server is ready to receive” 
while 1:
    message, clientAddress = serverSocket.recvfrom(2048) 
    modifiedMessage = message.upper() 
    serverSocket.sendto(modifiedMessage, clientAddress)

我很幸运有两台笔记本电脑,并考虑让一台运行客户端,另一台运行服务器。这是天真的吗?我正在努力找出如何在这里指定
serverName
变量或IP地址。两台笔记本电脑都在同一个WiFi网络中(即使它的eduroam可能会导致问题?)

当我使用终端查找本地IP地址时,一个给我10.17.47.158,另一个说100.112.82.103。但是仅仅使用这些IP地址似乎不起作用。我做错了什么?还有,为什么它们如此不同,这是否意味着它们没有连接到同一个路由器


我可以在两台不同的笔记本电脑上运行这两个应用程序吗?当我指定正确的IP地址时,一切都应该正常工作?还是我完全搞错了?

你有两个选择

  • 使用同一台计算机运行客户端和服务器——这样,您只需在IP字段中写入localhost或127.0.0.1即可
  • 在两台计算机上运行-今年5月,您可能会遇到一些问题。原因有很多,但其中一个最为人所知的问题是防火墙
  • 我要做的是遵循以下步骤:

  • 在同一台计算机上运行服务器和客户端,以确保代码正常工作
  • 将ping从一台计算机发送到另一台计算机,并确保我收到答复
  • 关闭两台计算机上的防火墙-并尝试运行软件。如果在步骤3中没有收到ping,请立即尝试。如果现在ping不起作用跳到步骤5/6
  • 如果工作到第3步-打开防火墙-并在服务器上设置防火墙规则以允许端口12000
  • 通常-到目前为止,您将有一个工作的服务器和一个客户端。但是如果第4步不起作用-我将打开并检查数据包是否接收到服务器并从客户端发送-并将使用我拥有的数据从这里继续研究
  • 看起来您的两台计算机在不同的子网上-因此,我要做的是将它们放在具有相同子网的同一网络中。如果您希望它们位于不同的子网,则必须在路由器中配置这两个子网之间的路由
  • 祝你好运