Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > tinyp2p - trying to get it to work

Reply
Thread Tools

tinyp2p - trying to get it to work

 
 
Fantus
Guest
Posts: n/a
 
      10-07-2007
Hello

I am doing a small research and I found this:

http://www.freedom-to-tinker.com/tinyp2p.html

I tried to get it to work. So far I managed to run it as a server using
a command:

> python tinyp2p.py haslo server 10.10.10.1 2233


It starts listening on a given port so I assume it works fine (I can
telnet from other machine to 10.10.10.1 on 2233)

Now when I try to run a client using following command:

> python tinyp2p.py haslo client http://10.10.10.1:2233 koniki


it gives me some strange output and erros:


Traceback (most recent call last):
File "tinyp2p.py", line 14, in ?
for url in pxy(ar[3]).f(pw(ar[3]),0,[]):
File "/usr/lib/python2.4/xmlrpclib.py", line 1096, in __call__
return self.__send(self.__name, args)
File "/usr/lib/python2.4/xmlrpclib.py", line 1383, in __request
verbose=self.__verbose
File "/usr/lib/python2.4/xmlrpclib.py", line 1147, in request
return self._parse_response(h.getfile(), sock)
File "/usr/lib/python2.4/xmlrpclib.py", line 1286, in _parse_response
return u.close()
File "/usr/lib/python2.4/xmlrpclib.py", line 744, in close
raise Fault(**self._stack[0])
xmlrpclib.Fault: <Fault 1: 'exceptions.TypeError:coercing to Unicode:
need string or buffer, list found'>



Can anybody help me to solve this? Please. I did browse google but found
nothing.

Regards
Fantus.
 
Reply With Quote
 
 
 
 
Marc Christiansen
Guest
Posts: n/a
 
      10-08-2007
Fantus <(E-Mail Removed)> wrote:
> Hello
>
> I am doing a small research and I found this:
>
> http://www.freedom-to-tinker.com/tinyp2p.html

[...]
> Now when I try to run a client using following command:
>
> > python tinyp2p.py haslo client http://10.10.10.1:2233 koniki

>
> it gives me some strange output and erros:
>
>
> Traceback (most recent call last):
> File "tinyp2p.py", line 14, in ?
> for url in pxy(ar[3]).f(pw(ar[3]),0,[]):
> File "/usr/lib/python2.4/xmlrpclib.py", line 1096, in __call__
> return self.__send(self.__name, args)
> File "/usr/lib/python2.4/xmlrpclib.py", line 1383, in __request
> verbose=self.__verbose
> File "/usr/lib/python2.4/xmlrpclib.py", line 1147, in request
> return self._parse_response(h.getfile(), sock)
> File "/usr/lib/python2.4/xmlrpclib.py", line 1286, in _parse_response
> return u.close()
> File "/usr/lib/python2.4/xmlrpclib.py", line 744, in close
> raise Fault(**self._stack[0])
> xmlrpclib.Fault: <Fault 1: 'exceptions.TypeError:coercing to Unicode:
> need string or buffer, list found'>
>
>
> Can anybody help me to solve this? Please. I did browse google but found
> nothing.


I had a (not so quick) look. The code proves its point (i.e. writing a
very small p2p application is possible), but it is horrible. With only
one server, the code is broken; maybe it works using multiple servers, I
didn't test. A quick fix seems to be to change the line
pr() and [aug(s) for s in aug(pr()[0])]
to
pr() and [aug(s) for s in aug(pr()[0])] or pr([myU])

Please don't take tinyp2p.py as an example on writing python.

HTH Marc
 
Reply With Quote
 
 
 
 
Fantus
Guest
Posts: n/a
 
      10-08-2007
Marc Christiansen pisze:
>> Can anybody help me to solve this? Please. I did browse google but found
>> nothing.

>
> I had a (not so quick) look. The code proves its point (i.e. writing a
> very small p2p application is possible), but it is horrible. With only
> one server, the code is broken; maybe it works using multiple servers, I
> didn't test. A quick fix seems to be to change the line
> pr() and [aug(s) for s in aug(pr()[0])]
> to
> pr() and [aug(s) for s in aug(pr()[0])] or pr([myU])
>
> Please don't take tinyp2p.py as an example on writing python.
>
> HTH Marc


It seems to be working! Respect.

I know this app is a bit messy but I couldnt't find anything else that
would implement p2p basics and wouldn't have hundrends or thousands of
lines of code. I need something very simple and this is fine.

Thank you Marc!
 
Reply With Quote
 
Fantus
Guest
Posts: n/a
 
      10-09-2007
Marc Christiansen pisze:

>
> I had a (not so quick) look. The code proves its point (i.e. writing a
> very small p2p application is possible), but it is horrible. With only
> one server, the code is broken; maybe it works using multiple servers, I
> didn't test. A quick fix seems to be to change the line
> pr() and [aug(s) for s in aug(pr()[0])]
> to
> pr() and [aug(s) for s in aug(pr()[0])] or pr([myU])
>
> Please don't take tinyp2p.py as an example on writing python.
>
> HTH Marc



Ok, this seems to work "fine" (as much as a program designed to be
minimalistic can do) except it can't download files larger than 10kb.

It looks like a problem with SimpleXMLRPCServer (or at least I think so...)

While trying to download file larger than 10kb the server itself doesn't
crash but generates output like this:


----------------------------------------
Exception happened during processing of request from ('127.0.0.1', 44817)
Traceback (most recent call last):
File "SocketServer.py", line 222, in handle_request
self.process_request(request, client_address)
File "SocketServer.py", line 241, in process_request
self.finish_request(request, client_address)
File "SocketServer.py", line 254, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "SocketServer.py", line 521, in __init__
self.handle()
File "BaseHTTPServer.py", line 316, in handle
self.handle_one_request()
File "BaseHTTPServer.py", line 310, in handle_one_request
method()
File "SimpleXMLRPCServer.py", line 445, in do_POST
self.wfile.write(response)
File "socket.py", line 248, in write
self.flush()
File "socket.py", line 235, in flush
self._sock.sendall(buffer)
error: (104, 'Connection reset by peer')
----------------------------------------


The client that was trying to make a download generates this:

Traceback (most recent call last):
File "backup5.py", line 75, in ?
(lambda fi:fi.write(proxy(url).f(pw(url),2,fn)) or
fi.close())(file(fn,"wc"))
File "backup5.py", line 75, in <lambda>
(lambda fi:fi.write(proxy(url).f(pw(url),2,fn)) or
fi.close())(file(fn,"wc"))
File "/usr/lib/python2.4/xmlrpclib.py", line 1096, in __call__
return self.__send(self.__name, args)
File "/usr/lib/python2.4/xmlrpclib.py", line 1383, in __request
verbose=self.__verbose
File "/usr/lib/python2.4/xmlrpclib.py", line 1147, in request
return self._parse_response(h.getfile(), sock)
File "/usr/lib/python2.4/xmlrpclib.py", line 1281, in _parse_response
p.feed(response)
File "/usr/lib/python2.4/xmlrpclib.py", line 527, in feed
self._parser.Parse(data, 0)
xml.parsers.expat.ExpatError: not well-formed (invalid token): line 5,
column 15


Should I post this in a separate thread or maybe one of experts visiting
this group will take a look and hopefully solve my problem?

Thank you in advance.
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Re: Trying to get a 3640 to work as dial-in ISDN/analogue accessserver Guy Dawson Cisco 1 04-17-2007 10:08 AM
Trying to get a simple webpage with SQL 2005 Express to work on my hosted site Martin Randall ASP .Net 8 03-28-2006 06:18 PM
URGENT help needed. Trying to get panels to work... TN Bella ASP .Net 2 06-17-2004 12:56 PM
Trying to get Image::Magick to work on a remote server Weapons of Mass Destruction Perl 3 11-15-2003 05:17 AM
Trying to get a router to work on an Earthlink DSL account Ted Dorset Computer Support 3 08-12-2003 10:40 PM



Advertisments