我想创建程序,如果有人在端口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
所以我每次启动脚本都需要更改端口,这真的很痛苦
任何建议都会有所帮助,谢谢
答案 0 :(得分:3)
如果您不确定是否需要它们,请不要使用1000以下的端口。为什么,你可以在这里阅读http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
谈到telnet你的意思?网络协议http://en.wikipedia.org/wiki/Telnet?或其他什么?