ich bin aktuell dabei ein ganz einfaches Chat Programm zu schreiben. Das hat auch alles soweit gut geklappt, nun versuche ich gerade gewisse Funktionen, konkret das senden und empfangen von Nachrichten, zu parallelisieren. Damit man quasi eine Nachricht tippen kann und gleichzeitig etwas empfangen kann(recv und send). Dazu habe ich mich nun in Threading und Multiprocessing eingelesen. Beides sollte eig. funktionieren für mein Tool. Leider kriege ich beides nicht zum laufen hin...
In den folgenden Codes könnt ihr ganz unten meine Versuche sehen, multiprocessing oder threading einzusetzen. Das hat leider so nicht geklappt.
Mein Server Code :
Code: Alles auswählen
import socket
import multiprocessing
import easygui
import time
from threading import Thread
port =
IP
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('IP', port))
hostname = socket.gethostname()
IPAddr = socket.gethostbyname(hostname)
print("Server connects with your IP: " + IPAddr)
print("Server running")
server_socket.listen(10)
(print("Wait for a Message"))
(client_socket, addr) = server_socket.accept()
print(addr)
def ResvMessage():
while socket.error != None:
time.sleep(0.2)
print("Waiting for an answer")
b = "stop"
msg2 = client_socket.recv(1024)
k = (str(msg2, "utf8"))
print(k)
if k == b:
socket.close(server_socket)
sys.exit()
print("server close")
else:
print("Waiting for more messages")
def Senden():
while socket.error != None:
time.sleep(0.2)
client_socket.send((bytes(input("Type in your Message"), "utf8")))
msg2 = client_socket.recv(1024)
k = (str(msg2, "utf8"))
print(k)
ResvMessage()
Senden()
t = Thread(target=Senden(), args=())
t2 = Thread(target=ResvMessage(), args=())
t.start()
t2.start()
Client:
[code]import socket
import multiprocessing
import easygui
import time
from threading import Thread
IP =
port =
print("Clientporgramm started")
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
hostname = socket.gethostname()
IPAddr = socket.gethostbyname(hostname)
print("Server Connects with your IP: " + IPAddr)
x = client_socket.connect(('IP', port))
def sendmessages():
while socket.error != None:
time.sleep(0.2)
Nachricht = input("Your Message:")
if Nachricht != "":
b = client_socket.send(bytes(Nachricht, "utf8"))
print(b)
else:
print("Type in your Message")
def Recvmessages():
while socket.error != None:
time.sleep(0.2)
msg = client_socket.recv(1024)
print(str(msg, "utf8"))
print("Got a Message")
t = Thread(target=Recvmessages(), args=())
t2 = Thread(target=sendmessages(), args=())
t.start()
t2.start()