gpt4 book ai didi

Python:WinError 10045:引用的对象类型不支持尝试的操作

转载 作者:行者123 更新时间:2023-12-05 06:27:59 27 4
gpt4 key购买 nike

我正在使用客户端/服务器程序创建凯撒密码程序。客户端将输入消息和 key ,服务器将返回密文。这是我的服务器代码:

import socket

def getCaesar(message, key):
cipher = ""

for i in message:
char = message[i]

# Encrypt uppercase characters
if (char.isupper()):
cipher += chr((ord(char) + key-65) % 26 + 65)

# Encrypt lowercase characters
else:
cipher += chr((ord(char) + key - 97) % 26 + 97)

return cipher

s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host=socket.gethostname()
port=4000

s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

s.bind((host,port))
s.listen(5)
print("Listenting for requests")

while True:
s,addr=s.accept()
print("Got connection from ",addr)
print("Receiving...")

message,key=s.recv(1024)
resp=getCaesar(message, key)

s.send(resp)
s.close()

错误消息调用此行:s.send(message, key) 并出现此错误:

OSError: [WinError 10045] 引用的对象类型不支持尝试的操作。这个错误是什么意思?

我的客户端代码:

import socket

def getMessage():
print('Enter your message:')
return input()

def getKey():
key = 0
while True:
print('Enter the key number (1-%s)' % (26))
key = int(input())
if (key >= 1 and key <= 26):
return key

s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host=socket.gethostname()
port=4000
s.connect((host,port))


message = getMessage()
key = getKey()

message=message.encode()


s.send(message, key)
cipher= s.recv(1024)

print('Ciphertext: ')
print(cipher)
s.close()

最佳答案

查看帮助(socket.send):

Help on built-in function send:

send(...) method of socket.socket instance
send(data[, flags]) -> count

Send a data string to the socket. For the optional flags
argument, see the Unix manual. Return the number of bytes
sent; this may be less than len(data) if the network is busy.

因此,s.send(message, key) 行可能不会按您预期的方式工作:它仅发送带有 keymessage > 被解释为标志,而不是 messagekey。尝试分别发送 messagekey。并且不要忘记也分别recv它们。

关于Python:WinError 10045:引用的对象类型不支持尝试的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54738054/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com