私は現在、クライアント/サーバープログラムで作業しています。クライアントプログラムは、Windowsユーザ名をサーバに送信します。サーバープログラムは、os.systemを使用して、ユーザー名に対して「net user」コマンドを実行します。これは機能します。サーバから情報を受け取るためのPythonソケット?
サーバーにWindowsの「ネットユーザー」コマンドの結果をクライアントクライアントに送り返したいとします。ここ は私の作業プログラムです:
client.py
import sys
from socket import socket, AF_INET, SOCK_DGRAM
SERVER_IP = '10.x.xxx.xxx'
PORT_NUMBER = 2000
SIZE = 1024
print ("Test client sending packets to IP {0}, via port {1}\n".format(SERVER_IP, PORT_NUMBER))
myMessage1 = input(' Please enter your login name: ')
mySocket = socket(AF_INET, SOCK_DGRAM)
mySocket.sendto(myMessage1.encode('ascii'),(SERVER_IP,PORT_NUMBER))
sys.exit()
server.py
import subprocess
import os
from socket import socket, gethostbyname, AF_INET, SOCK_DGRAM
import sys
PORT_NUMBER = 2000
SIZE = 1024
hostName = gethostbyname('0.0.0.0')
mySocket = socket(AF_INET, SOCK_DGRAM)
mySocket.bind((hostName, PORT_NUMBER))
print ("Test server listening on port {0}\n".format(PORT_NUMBER))
# Receive no more than 1024 bytes
while True:
(data,addr) = mySocket.recvfrom(SIZE)
print (data.decode())
batcmd=('net user ' + data.decode() + ' /domain')
result = os.system(batcmd)
sys.exit()
は今ここに私が追加しようとしているものです:
client2.py
import os
import sys
from socket import socket, AF_INET, SOCK_DGRAM
SERVER_IP = '10.x.xxx.xxx'
PORT_NUMBER = 2000
SIZE = 1024
print ("Test client sending packets to IP {0}, via port {1}\n".format(SERVER_IP, PORT_NUMBER))
myMessage1 = input(' Please enter your login name: ')
mySocket = socket(AF_INET, SOCK_DGRAM)
mySocket.sendto(myMessage1.encode('ascii'),(SERVER_IP,PORT_NUMBER))
# Receive result from server ?
(data,addr) = mySocket.recvfrom(SIZE)
print (result.decode())
sys.exit()
server2.py
import subprocess
import os
from socket import socket, gethostbyname, AF_INET, SOCK_DGRAM
import sys
PORT_NUMBER = 2000
SIZE = 1024
hostName = gethostbyname('0.0.0.0')
mySocket = socket(AF_INET, SOCK_DGRAM)
mySocket.bind((hostName, PORT_NUMBER))
print ("Test server listening on port {0}\n".format(PORT_NUMBER))
# Receive no more than 1024 bytes
while True:
(data,addr) = mySocket.recvfrom(SIZE)
print (data.decode())
batcmd=('net user ' + data.decode() + ' /domain')
result = os.system(batcmd)
# send result back to client ?
mySocket.send(result.encode('ascii'))
sys.exit()
これを正しく行う方法についてのご意見はありますか?