サーバ - クライアントmd5の解読を試みています サーバは、 cpu) とクライアントが彼の範囲をマルチキャストするために (ブルートフォース) しかし、サーバーは私に "socket.error:[Errno 10048]を投げます。各ソケットアドレス(プロトコル/ネットワークアドレス/ポート) 「許可された」エラー 提案はありますか?socket.error:[Errno 10048]通常、各ソケットアドレス(プロトコル/ネットワークアドレス/ポート)の1つの使用しか許可されていません。
クライアント:
import socket
RANGE=10000
d="7a2b33c672ce223b2aa5789171ddde2f"
d=d.lower()
HOMEADDRES='127.0.0.1'
PORT=2345
ADDRESS=(HOMEADDRES,PORT)
my_socket=socket.socket(socket.AF_INET ,socket.SOCK_STREAM)
my_socket.connect((HOMEADDRES,PORT))
def main():
ranges=""
my_socket.send(d)
cores=int(my_socket.recv(1024))
borders=[0]
for i in range(1,cores+1):
borders.append(RANGE*i/cores)
for i in range(len(borders)):
ranges+=str(borders[i])+"#"
ranges=ranges[:-1]
print ranges
my_socket.send(ranges)
print my_socket.recv(1024)
my_socket.close()
if __name__ == '__main__':
main()
サーバー:
import socket
import multiprocessing
import hashlib
IP_ADD='0.0.0.0'
PORT=2345
ADDRESS = (IP_ADD,PORT)
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(ADDRESS)
server_socket.listen(1)
client_socket, address = server_socket.accept()
print "connected"
def decrypt(low,high,d):
print "1"
i=low
while i<high:
m=hashlib.md5()
m.update(str((i)))
if m.hexdigest()==d:
client_socket.send(i)
client_socket.close()
server_socket.close()
i+=1
def main():
d=client_socket.recv(1024)
client_socket.send(str(multiprocessing.cpu_count()))
borders=client_socket.recv(1024)
borders=borders.split("#")
for i in range(len(borders)-1):
p=multiprocessing.Process(target=decrypt, args=(borders[i],borders[i+1],d))
p.start()
if __name__ == '__main__':
main()
'main()'(サーバーソケットの作成)の外側にあるコードをmainの先頭に移動します。 'main()'がサーバーでどのように呼び出されているかはわかりませんが、クライアントと似ていると思います。 – cdarke