如何在Python中接收telnet连接的数据

0 投票
1 回答
1013 浏览
提问于 2025-04-18 01:11

我想写一个程序,让别人如果通过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关闭这个脚本,它会出现错误信息。但是更大的问题是,下次我再运行这个脚本时,就会显示以下错误。

 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 个回答

3

如果你不确定自己需要使用端口,最好不要使用1000以下的端口。为什么呢?你可以在这里了解更多 http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers

说到telnet,你指的是什么?是网络协议 http://en.wikipedia.org/wiki/Telnet 吗?还是其他的东西?

撰写回答