added variable length receiving and sending
This commit is contained in:
1 parent
532a80fddd
commit
5e596bdef7
2 files changed
+44
-4
No files matched your search
+22
-2
@@ -15,6 +15,26 @@ ALL_IPS = [
|
||||
"172.22.156.6"
|
||||
]
|
||||
|
||||
def send_message(sock, message):
|
||||
e_data = message.encode('utf-8')
|
||||
#header for the message length
|
||||
header = str(len(e_data)).zfill(10).encode('utf-8')
|
||||
sock.sendall(header)
|
||||
sock.sendall(e_data)
|
||||
|
||||
def receive_message(sock):
|
||||
header = sock.recv(10)
|
||||
if not header:
|
||||
return None
|
||||
message_length = int(header.decode('utf-8'))
|
||||
received_data = b""
|
||||
while len(received_data) < message_length:
|
||||
chunk = sock.recv(65536)
|
||||
if not chunk:
|
||||
break
|
||||
received_data += chunk
|
||||
return received_data.decode('utf-8')
|
||||
|
||||
def grep_all_ips(ips, cmd):
|
||||
match_count = []
|
||||
|
||||
@@ -26,8 +46,8 @@ def grep_all_ips(ips, cmd):
|
||||
|
||||
full_cmd = cmd + f" ./machine.{i + 1}.log"
|
||||
|
||||
client_socket.sendall(full_cmd.encode())
|
||||
data = client_socket.recv(65536).decode()
|
||||
send_message(client_socket, full_cmd)
|
||||
data = receive_message(client_socket)
|
||||
|
||||
count = len(data.splitlines())
|
||||
match_count.append(count)
|
||||
|
||||
+22
-2
@@ -13,11 +13,31 @@ server_socket.listen()
|
||||
|
||||
print(f"Server listening on {HOST}:{PORT}")
|
||||
|
||||
def send_message(sock, message):
|
||||
e_data = message.encode('utf-8')
|
||||
#header for the message length
|
||||
header = str(len(e_data)).zfill(10).encode('utf-8')
|
||||
sock.sendall(header)
|
||||
sock.sendall(e_data)
|
||||
|
||||
def receive_message(sock):
|
||||
header = sock.recv(10)
|
||||
if not header:
|
||||
return None
|
||||
message_length = int(header.decode('utf-8'))
|
||||
received_data = b""
|
||||
while len(received_data) < message_length:
|
||||
chunk = sock.recv(65536)
|
||||
if not chunk:
|
||||
break
|
||||
received_data += chunk
|
||||
return received_data.decode('utf-8')
|
||||
|
||||
while True:
|
||||
conn, addr = server_socket.accept()
|
||||
print(f"Connected by {addr}")
|
||||
|
||||
command = conn.recv(65536)
|
||||
command = receive_message(conn)
|
||||
# print("Received Grep Command:", command.decode())
|
||||
|
||||
command_args = shlex.split(command.decode())
|
||||
@@ -32,7 +52,7 @@ while True:
|
||||
|
||||
result = subprocess.run(command_args, capture_output=True, text=True)
|
||||
|
||||
conn.sendall(result.stdout.encode())
|
||||
send_message(conn, result.stdout)
|
||||
|
||||
conn.close()
|
||||
|
||||
|
||||
Reference in new issue
Block a user