[Tutor] Socket connection refused
Nick Lunt
nick at javacat.f2s.com
Mon Feb 23 14:00:49 EST 2004
Hi there,
I'm also new at python but I copied/pasted your source code and it ran
fine after I'd sorted out the formatting, but I suspect that was because
of my email client.
Anyway it runs on linux ok, the only issue I found was that when
connecting, then clicking on the OK button on the 'Hello World' message
I get the following TkDialog up "Can't connect to the server 127.0.0.1
EISCONN"
Sorry I can't be of anymore help.
Cheers
Nick.
On Mon, 23 Feb 2004 19:09:13 GMT "Vianus le Fus "
<deadviannou at caramail.com> wrote:
> Hello,
> I'm a newbie to python so please don't be too hard with me :)
> I'm encountering problems using socket connections in my programs. My
> goal is to create a small chat program so I begin with the beginning :
> two really small apps, one for the server and one for the client. The
> server is here to listen to one port and to resend its own data to the
> client that's connected to the port.
>
> I have found two ways to test this : I compile the server with py2exe
> and launch it, then I can run the client either running the module
> under IDLE or compiling it with py2exe. And there's my problem : it
> works under IDLE (connection is set and the client receives its own
> data) but connection fails when using the exe client.... it says
> "error 10061 : Connection refused". I don't have any firewall nor
> other running programs that could block the socket, I really don't
> understand what's the difference using py2exe or not !!
>
> Please does someone know why the first method works and not the other
> ?
>
> -----------------------------------------------------
> Serveur.py
> -----------------------------------------------------
> import socket
>
> HOST = '127.0.0.1'
> PORT = 50007
>
> s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
> s.bind((HOST, PORT))
> s.listen(1)
> conn, addr = s.accept()
> print 'Connected by', addr
> while 1:
> data = conn.recv(1024)
> if not data: break
> conn.send(data)
> conn.close()
>
>
>
> -----------------------------------------------------
> Client.py
> -----------------------------------------------------
> import errno
> import socket
> from Tkinter import *
> import tkMessageBox
>
> class Application(Frame):
> def __init__(self, master=None):
> Frame.__init__(self, master)
>
> self.s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
> self.connected = 0
> self.data = ''
>
> self.pack()
> self.createWidgets()
>
>
> def createWidgets(self):
> self.btn_quit = Button(self)
> self.btn_quit["text"] = "QUIT"
> self.btn_quit["fg"] = "red"
> self.btn_quit["command"] = self.end
>
> self.btn_quit.pack({"side": "left"})
>
> self.btn_connect = Button(self)
> self.btn_connect["text"] = "Connect",
> self.btn_connect["command"] = self.connect
>
> self.btn_connect.pack({"side": "right"})
>
>
> def connect(self) :
> try:
> self.s.connect(('127.0.0.1', 50007))
> self.connected = 1
>
> except socket.error, msg:
> tkMessageBox.showinfo(title='Connexion error',
> message='Can\'t connect \
> to the server 127.0.0.1' + '\n' + str(errno.errorcode[msg[0]]))
>
> if self.connected == 1 :
> self.s.send('Hello, world')
> self.data = self.s.recv(1024)
> print 'Received', str(self.data)
> tkMessageBox.showinfo(title='Data received !!',
> message=str(self.data))
>
>
> def end(self) :
> self.s.close()
> self.quit()
>
>
> # MAIN
> app = Application()
> app.mainloop()
> -----------------------------------------------------
>
> Plus simple, plus fiable, plus rapide : découvrez le nouveau Caramail
> - http://www.caramail.lycos.fr
>
>
More information about the Tutor
mailing list