如何从python中的telnet连接接收数据

时间:2014-04-03 15:04:50

标签: python linux sockets

我想创建程序,如果有人在端口43连接到我的电脑并发送一些数据,例如网站名称 然后我在该网站名称上执行一些功能并返回最终值 但这个程序不是功能

#!/usr/bin/env python
import sys
import socket
import urllib2
s = socket.socket()         # Create a socket object
host = '192.168.0.140' # Get local machine name
BUFFER_SIZE = 1000000000
port = 43        # Reserve a port for your service.
s.bind((host, port))        # Bind to the port

s.listen(5)                 # Now wait for client connection.
while True:
   c, addr = s.accept()     # Establish connection with client.
   print 'Got connection from', addr
   data = c.recv(BUFFER_SIZE)
   print data
   x = urllib2.urlopen('http://192.168.0.65:2020/?websitename='+data ).read()
   print x
   c.send(x)
   c.close()                # Close the connection

另外一个问题是在测试时是否通过按ctrl + c关闭此脚本然后它以traceback退出,但主要问题是如果我下次运行此脚本然后它显示以下错误

 File "/usr/lib/python2.7/socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
socket.error: [Errno 98] Address already in use

所以我每次启动脚本都需要更改端口,这真的很痛苦

任何建议都会有所帮助,谢谢

1 个答案:

答案 0 :(得分:3)

如果您不确定是否需要它们,请不要使用1000以下的端口。为什么,你可以在这里阅读http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers

谈到telnet你的意思?网络协议http://en.wikipedia.org/wiki/Telnet?或其他什么?