网络示例 - IP 地址
Posted
技术标签:
【中文标题】网络示例 - IP 地址【英文标题】:Network example - IP address 【发布时间】:2021-05-31 22:46:36 【问题描述】:我刚开始学习网络,并遵循 Kurose 和 Ross 的书。他们有以下 python 代码的 sn-ps 来说明 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)
我很幸运拥有两台笔记本电脑,并考虑让一台运行客户端,一台运行服务器部分。这是幼稚的吗?我正在努力找出如何在此处指定 serverName
变量或 IP 地址。两台笔记本电脑都在同一个 WiFi 网络中(即使它的 eduroam 可能会导致问题?)
当我使用终端查找本地 IP 地址时,一个给我 10.17.47.158,另一个给我 100.112.82.103。但仅仅使用这些 IP 地址似乎不起作用。我究竟做错了什么?另外为什么它们如此不同,是否意味着它们没有连接到同一个路由器?
我可以在两台不同的笔记本电脑上同时运行这两个应用程序,当我指定正确的 IP 地址时,一切都应该正常工作吗?还是我在这里完全搞错了?
【问题讨论】:
【参考方案1】:您有两种选择
-
使用同一台计算机运行客户端和服务器 - 这样您只需在 IP 字段中写入 localhost 或 127.0.0.1。
在 2 台计算机上运行 - 在这种情况下,您可能会遇到一些问题。它们可能来自多种原因,但其中一个最知名的问题是 防火墙。
我会按照以下步骤操作:
-
在同一台计算机上运行服务器和客户端以确保代码正常运行
将 ping 从一台计算机发送到另一台计算机并确保我收到答复。
关闭两台计算机上的防火墙 - 并尝试运行软件。如果您在第 3 步中没有收到 ping,请立即尝试。如果现在 ping 不起作用跳到第 5/6 步
如果它运行到第 3 步 - 打开防火墙 - 并在服务器上设置防火墙规则以允许端口 12000。
通常 - 到这里你会有一个工作服务器和一个客户端。 但是如果第 4 步不起作用 - 我会打开 wireshark 并检查数据包是否接收到服务器并从客户-并将使用我拥有的数据从这里继续研究。
看起来您的两台计算机位于不同的子网 - 因此我要做的是将它们放在具有相同子网的同一网络中。如果您希望它们位于不同的子网 - 您必须在路由器中配置这两个子网之间的路由。
祝你好运!
【讨论】:
以上是关于网络示例 - IP 地址的主要内容,如果未能解决你的问题,请参考以下文章