【发布时间】:2018-01-19 23:54:04
【问题描述】:
所以我正在尝试编写一个 TCP 服务器和客户端,以便当客户端连接时,从服务器发回一个文件。这是我的服务器代码:
import socket
import threading
bind_ip = '0.0.0.0'
bind_port = 9999
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((bind_ip, bind_port))
server.listen(10)
file_to_send = ('file_to_send.txt')
print '[*] Listening on %s:%d' % (bind_ip,bind_port)
def handle_client(client_socket):
request = client_socket.recv(1024)
print '[*] Received %s' % request
client_socket.send('')
client_socket.close(file_to_send)
while True:
client,addr = server.accept()
print '[*] Accepted connection from: %s:%d' % (addr[0],addr[1])
client_handler = threading.Thread(target=handle_client,args=(client,))
client_handler.start()
这是我的客户代码:
import socket
target_host = '0.0.0.0'
target_port = 9999
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect((target_host,target_port))
client.send('ACK!')
response = client.recv(4096)
print response
服务器和客户端运行时,服务器返回错误“每个套接字地址(协议/网络地址/端口)通常只允许使用一次”,当客户端运行时,我收到错误“请求的地址”在其上下文中无效'
有谁知道为什么会发生这些错误或我可以如何解决它。
【问题讨论】:
-
您的客户端代码正在与不是有效地址的
0.0.0.0通话(在服务器中它只是意味着“监听所有传入连接”)
标签: python python-2.7