kurz zu mir: Ich habe mich gerade auf dieser Seite angemeldet, da ich mich in nächster Zeit so intensiv wie möglich mit Python beschäftigen möchte und sicher immer mal wieder Hilfe gebrauchen kann.
Kenntnisse: Ich habe mich vor etwa zwei Wochen das erste Mal mit Python beschäftigt. Bisher habe ich den kompletten Kurs auf codecademy(kennen sicher viele) durchgeackert und ein paar explizite Artikel aus dem Openbook Python gelesen (http://openbook.galileocomputing.de/python/).
Da mich im speziellen Netzwerkprogrammierung sehr interessiert habe ich mich bspw. in Sockets eingelesen und auchs chon erfolgreich ein Server- und ein Client-Script geschrieben, dass es ermöglicht in der Console des Clients auf die Console des Servers über einen UDP-Socket Nachrichten zu schreiben. Nächster Schritt war nun der Gedanke an ein Chatprogramm innerhalb der Console. Ich fragte mich wie ich quasi zwei unendliche while-Schleifen für das Lauschen auf empfangene Nachrichten und das Versenden der geschrieben gleichzeitig laufen lassen könnte. Dadurch stieß ich schnell auf Threads und arbeitete mich auch in das Kapitel des Openbooks ein.
Anschließend entstand folgender Code.
Code: Alles auswählen
import socket, time, datetime, threading
target_ip = raw_input("Empf-IP: ")
port = 48899
udp_socket = socket.socket( socket.AF_INET, socket.SOCK_DGRAM )
class SendThread(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def run(self):
while True:
message = raw_input("> ")
udp_socket.sendto(message, (target_ip,port))
class ReceiveThread(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def run(self):
while True:
data, addr = udp_socket.recvfrom(1024)
print data
my_threads = []
send_thread = SendThread()
recv_thread = ReceiveThread()
my_threads.append(send_thread)
my_threads.append(recv_thread)
for thread in my_threads:
thread.start()
for thread in my_threads:
thread.join()
Mir fehlt bisher einfach die Erfahrung mit Threads zu arbeiten und hoffe hier Hilfe zu bekommen.> Exception in thread Thread-2:
Traceback (most recent call last):
File "C:\Python27\lib\threading.py", line 810, in __bootstrap_inner
self.run()
File "D:\python\chat.py", line 24, in run
data, addr = udp_socket.recvfrom(1024)
error: [Errno 10022] Ein ung³ltiges Argument wurde angegeben
Vielen Dank für das Lesen meines ersten Posts.
Gruß fuuman