cocon1
2008.07.11 22:44
  • witam,
    mam problem z połączeniem typu klient serwer,
    server wygląda tak:
    import socket
    import SocketServer
    import string
    
    class myTCPServer(SocketServer.StreamRequestHandler):
        def handle(self):
            while 1:
                peer = self.connection.getpeername()[0]
                line = self.rfile.readline()
                print "%s napisal: %s" % (peer, line)
                sck = self.connection.getsockname()[0]
                self.wfile.write("%s: otrzymano  %d bajtow" % (sck, len(line)))
    
                
                
                
    serwer = SocketServer.TCPServer(("",5008),myTCPServer)
    serwer.serve_forever()
    




    klient:
    import sys
    from socket import *
    
    serverHost = 'localhost'
    serverPort = 5008
    
    if len(sys.argv) > 1:
       serverHost = sys.argv[1]
        
        
    sSock = socket(AF_INET, SOCK_STREAM)
    
    sSock.connect((serverHost, serverPort))
    
    
    line = " "
    while line !='Do widzenia':
        line = raw_input("wyslij do %s: "(serverHost))
        sSock.send(line+'\n')
        data = sSock.recv(1024)
        print data
    
    
    sSock.shutdown(0)
    sSock.close()
    


    po włączeniu po stronie klienta pokazuje się błąd
    lini 18 TypeError: 'str' object is not callable
    natomiast w oknie servera


    próbowałem różnych ustawień i konfiguracji ale nadal nie udało mi się tego rozwiązać, nie wiem gdzie popełniam błąd.
    proszę o wsparcię.

riklaunim
2008.07.11 22:44
  • line = " "
      while line !='Do widzenia':
    

    To na pewno nie ma prawa działać :)
cocon1
2008.07.11 22:44
  • przetestowałem i zgadza sie line powinno być
    albo zdefiniowane na stałe
    lub line = sys.argv

    dzięki.


Nie możesz dodawać nowych Tematów
Nie możesz dodawać nowych postów
Nie jesteś moderatorem



Biblioteka Riklaunima. Hosting NRC-FOSS na AU-KBC. Serwis oparty o Django/Python.