ich habe mich mal wieder völlig verfranst. Bei dem Versuch einen Service zu erstellen, der ( später einmal ) auf einem bestimmten Port lauscht und dann Anfragen einfach zu einem anderen System durchleitet, stoße ich schon in den Grundzügen auf folgendes Problem :
Es würde mir reichen, wenn er mir die Startseite von Google anzeigt. Leider kommen aber nur ein paar Daten an. Hat jemand eine Idee, WO ich hier den Denkfehler mache ?
Danke,
Gunnar
Code: Alles auswählen
# -*- coding: cp1252 -*-
# Bibliothek importieren
from socket import *
import Queue
class portlistening:
def __init__(self):
#Queue für die Daten erstellen
self.dataqueuec = Queue.Queue()
self.dataqueues = Queue.Queue()
# Sockets oeffnen
clients = socket(AF_INET, SOCK_STREAM)
servers = socket(AF_INET, SOCK_STREAM)
# Socket an Port binden
clients.bind(('', 30000))
# maximal fuenf Verbindungen zwischenpuffern
clients.listen(5)
while 1:
# auf naechste Verbindung warten
clientsock,addr = clients.accept()
print "connect from", addr
servers.connect(("www.google.de", 80))
if clientsock: break
while 1:
#Daten vom Client bekommen und in Queue schreiben
self.recvdatac(clientsock)
# Daten zum Server schicken
self.senddatac(servers)
#Daten vom Server bekommen und in Queue schreiben
self.recvdatas(servers)
# Daten zum Client schicken
self.senddatas(clientsock)
# Funktionen zum Empfangen und Senden der Daten
def recvdatac(self, conn):
data = conn.recv(100000)
self.dataqueuec.put(data, False, -1)
def senddatac(self, conn):
data = self.dataqueuec.get(False, -1)
conn.send(data)
def recvdatas(self, conn):
data = conn.recv(100000)
self.dataqueues.put(data, False, -1)
def senddatas(self, conn):
data = self.dataqueues.get(False, -1)
conn.send(data)
if __name__ == "__main__":
x = portlistening()