如何在 azure 中设置 Linux 虚拟机,以便我们可以将其作为服务器(而不是 apache 网络服务器)进行套接字编程
How to setup Linux VM in azure so that we can make it as a server(not a apache web server) for socket programming
我只是在 azure 云中安装 linux VM 并创建了一个 server.py,它基本上从位于另一台主机的 client.py 接收数据,并 returns 大写形式的数据。当我 运行 server.py 在我的虚拟机中 运行ning 并且当我通过 client.py 发送数据到 server.py 我不知道数据交易是否发生或者没有建立连接,但没有任何反应:
client.py:
enter code here
from socket import *
serverName = '13.91.90.71'
serverPort = 12000
clientSocket = socket(AF_INET,SOCK_DGRAM)
message = input('Enter lowercase sentence:')
clientSocket.sendto(message.encode(),(serverName, serverPort))
modifiedMessage, serverAddress = clientSocket.recvfrom(2048)
print (modifiedMessage.decode())
clientSocket.close()
server.py:
enter code here
from socket import *
serverPort =12000
serverSocket = socket(AF_INET, SOCK_DGRAM)
serverSocket.bind(('', serverPort))
print('Ready to listen')
while 1:
message,clientAddress = serverSocket.recvfrom(2048)
modifiedMessage = message.upper()
print(modifiedMessage)
serverSocket.sendto(modifiedMessage, clientAddress)
对于你的问题,问题是你需要像这样更改服务器的绑定:
serverSocket.bind(('0.0.0.0', serverPort))
或
serverSocket.bind(('vm_private_ip', serverPort))
vm_private_ip
是虚拟机的真实IP地址。然后您还需要在与VM关联的NSG中添加规则以允许端口12000。
我只是在 azure 云中安装 linux VM 并创建了一个 server.py,它基本上从位于另一台主机的 client.py 接收数据,并 returns 大写形式的数据。当我 运行 server.py 在我的虚拟机中 运行ning 并且当我通过 client.py 发送数据到 server.py 我不知道数据交易是否发生或者没有建立连接,但没有任何反应:
client.py:
enter code here
from socket import *
serverName = '13.91.90.71'
serverPort = 12000
clientSocket = socket(AF_INET,SOCK_DGRAM)
message = input('Enter lowercase sentence:')
clientSocket.sendto(message.encode(),(serverName, serverPort))
modifiedMessage, serverAddress = clientSocket.recvfrom(2048)
print (modifiedMessage.decode())
clientSocket.close()
server.py:
enter code here
from socket import *
serverPort =12000
serverSocket = socket(AF_INET, SOCK_DGRAM)
serverSocket.bind(('', serverPort))
print('Ready to listen')
while 1:
message,clientAddress = serverSocket.recvfrom(2048)
modifiedMessage = message.upper()
print(modifiedMessage)
serverSocket.sendto(modifiedMessage, clientAddress)
对于你的问题,问题是你需要像这样更改服务器的绑定:
serverSocket.bind(('0.0.0.0', serverPort))
或
serverSocket.bind(('vm_private_ip', serverPort))
vm_private_ip
是虚拟机的真实IP地址。然后您还需要在与VM关联的NSG中添加规则以允许端口12000。