【发布时间】:2011-07-10 18:40:40
【问题描述】:
我正在使用 Python 编写一个简单的脚本,该脚本将使用套接字连接到主机/端口。我知道套接字只能使用一次,这就是为什么我根本不关闭套接字,但是当我在端口 80 上连接到 localhost 并尝试像GET / 这样的简单命令时,它第一次工作但第二次执行@ 987654322@ 或任何其他 HTTP 命令,它不会打印输出。这是我所拥有的
import socket
size = 1024
host = 'localhost'
port = 80
def connectsocket(userHost, userPort):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #TCP socket
s.connect((userHost, userPort))
while(1):
input = raw_input("Command: ")
s.send(input + '\r\n\r\n') #Send command
r = s.recv(size) #Recieve output
print(r)
connectsocket(host, port)
我认为这会起作用,但这是一个示例输出:
amartin@homebox:~$ python socketconn.py
Command: GET /
[BUNCH OF HTML CODE]
Command: GET /
Command:
如您所见,它适用于第一个GET /,但不适用于第二个。我怎样才能解决这个问题?
【问题讨论】:
-
您从哪里得知套接字只能使用一个?您可以重复使用套接字。
-
我的意思是,如果你关闭一个套接字,你就不能使用同一个套接字。