gpt4 book ai didi

Qt tcp/ip 服务器可与 telnet 一起使用,但不能与 python 或 netcat 一起使用

转载 作者:可可西里 更新时间:2023-11-01 02:54:46 25 4
gpt4 key购买 nike

我有一个 Qt tcp/ip 服务器监听一个端口。我可以使用 telnet 与它对话,但是当我尝试使用 netcat 时,输入命令被截断了。当我尝试通过 python 向它发送命令时,它什么也看不到。 Qt tcp 服务器有没有其他人遇到过这样的问题?代码如下。

服务器

QTcpServer remoteControlServer;

remoteControlClient = remoteControlServer.nextPendingConnection();

connect(remoteControlClient, SIGNAL(readyRead()), this, SLOT(remoteCommandRead()));

命令解释器 -> 这就是我怀疑的问题所在。 canReadLine() 没有做我想做的事吗?我只是发送字符串,所以我认为我应该使用面向行的协议(protocol)。

 void MainWindow::remoteCommandRead()
{
QByteArray lineBuffer;
QByteArray consoleString;
QByteArray command;
QList<QByteArray> commandList;

while(remoteControlClient->canReadLine())
{
lineBuffer = remoteControlClient->readLine();
lineBuffer.chop(2);
lineBuffer.simplified();

commandList = lineBuffer.split(' ');

python 客户端

import socket
remote_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = ('address', port)
remote_sock.connect(server_address)
remote_sock.sendall('commandString')

非常感谢。

最佳答案

使用

trimmedLineBuffer = lineBuffer.trimmed();
commandList = trimmedLineBuffer.split(' ');

代替

lineBuffer.chop(2);
lineBuffer.simplified();

从 python 将“/r/n”附加到您发送的字符串的末尾,一切都会正常工作!

关于Qt tcp/ip 服务器可与 telnet 一起使用,但不能与 python 或 netcat 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17156620/

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