如何在Python中的TCP套接字中请求输入



我正试图将我拥有的一个功能性UDP套接字转换为TCP,但我遇到了困难,因为我找不到解释为什么我无法获得在TCP上工作的输入。UDP中的相同代码也可以工作。在TCP中,我只得到一个"空白"输入。

客户端

elif cmd[0] == 'INSERT':
name = input("nNAME: ")
artist = input("ARTIST: ")
album = input("ALBUM NAME: ")
year = input("YEAR: ")
newsong = name + ";" + artist + ";" + album + ";" + year + "n"
sock.sendto(bytes(newsong, "UTF-8"), serv)

服务器端

elif cmd[0].upper() == 'INSERT':
with open("songs.txt", "a", encoding='UTF-8') as fd:
receive_message = con.recvfrom(TAM_MSG)
msg = receive_message[0]
fd.write(str(msg, "UTF-8"))
fd.close()

这完全适用于UDP,但不适用于TCP。有什么方法可以输入到TCP服务器吗?怎样非常感谢。

好吧,我读过关于TCP的文章,它需要有一个双向流,正如大家在评论中指出的那样。

server.py的开头只添加一行就成功了。

con.send(str.encode(f"Inserting a new song: "))

谢谢大家!

附言:这肯定不是最好的答案,因为我是个新手。我想我只是运气好,所以这对我来说很有效。

最新更新