Я хочу использовать этот код, когда клиент и сервер находятся в разных сетях.могут ли сокеты pythons делать это?
сервер:
import socket
import select
open_client_sockets = []
server_socket = socket.socket()
server_socket.bind(('0.0.0.0', 8001))
server_socket.listen(1)
(new_socket1, address1) = server_socket.accept()
open_client_sockets.append(new_socket1)
while True:
rlist, wlist, xlist = select.select(open_client_sockets,
open_client_sockets, [])
for current_socket in rlist:
data = current_socket.recv(4096)
if data != '':
print "given data: ", str(data)
клиент:
import socket
import wmi
import time
import sys
ip = 'servers IP'
port = 8001
try:
my_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
my_socket.connect((ip, port))
except:
print "socket error"
c = wmi.WMI()
disks=[]
for disk in c.Win32_LogicalDisk (DriveType=3):
data= disk.Caption, "%0.2f%% free" % (100.0 * long (disk.FreeSpace) / long
(disk.Size))
disks.append(data)
print str(disks)
data = str(disks)
my_socket.send(data)
работает только в одной сети.