Pyhton3: Chat-Programm will sich nicht verbinden

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
starki_28
User
Beiträge: 3
Registriert: Freitag 26. September 2014, 21:31

Hallo Leute,

ich weiß hier leider nicht weiter. Ich will ein kleines Chat-Programm schreiben. Ich hab bisher folgendes:

Code: Alles auswählen

from socket import *
from threading import Thread
import sys

HOST = "127.0.0.1"
PORT = 80
BUFSIZE = 1024
ADDR = (HOST, PORT)

tcpCliSock = socket(AF_INET, SOCK_STREAM)
tcpCliSock.connect(ADDR)

def recv():
   while True:
      data = tcpCliSock.recv(BUFSIZE)
      if not data: sys.exit(0)
      print(data)

Thread(target = recv).start()

while True:
   data = input("> ")
   if not data: break
   tcpCliSock.send(data)

tcpCliSock.close()
Leider bekomme ich immer wieder die Fehlermeldung:
Traceback (most recent call last):
File "chat1.py", line 11, in <module>
tcpCliSock.connect(ADDR)
ConnectionRefusedError: [WinError 10061] Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte
Im Internet hab ich bisher gefunden, dass ich die Firewall ausschalten soll. Ich hab nur die Windows Firewall, die ich auch ausgeschaltet habe. Die Meldung kommt trotzdem.

Ein weiterer Tipp war ein Verbindungsaufbau mit Telnet. Aber der gibt mir auch nur die Meldung, dass keine Verbindung möglich ist. Frage hier: Was hat Telnet mit dem Problem zu tun? Das habe ich leider noch nicht ganz kapiert.

Und die andere Frage ist: Wie löse ich das Problem?
BlackJack

@starki_28: Wie sieht denn der Server aus der auf Port 80 auf die Verbindung wartet?

Edit: Telnet wäre ein Client den es schon gibt und der ziemlich sicher fehlerfrei ist. Wenn es mit Telnet funktioniert, dann weisst Du dass das Problem in Deinem Client-Code liegt. Wenn es mit Telnet nicht funktioniert, dann ist Dein Client erst einmal egal und Du muss heraus finden wo das Problem mit dem Netzwert oder dem Server ist.
starki_28
User
Beiträge: 3
Registriert: Freitag 26. September 2014, 21:31

BlackJack hat geschrieben:@starki_28: Wie sieht denn der Server aus der auf Port 80 auf die Verbindung wartet?
Eigentlich sollte das Programm sowohl server als auch client sein. Oder muss ich bei den beiden anders vorgehen?
BlackJack

@starki_28: Ja musst Du. Ein Server bindet ein Serversocket an einen Port und wartet dort auf Verbindungen von Clients und ein Client verbindet sich zu einem Server.
Antworten