如何在 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。