如何在Python中接收telnet连接的数据
我想写一个程序,让别人如果通过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 吗?还是其他的东西?