1

我正在尝试在我的应用程序中实现 TCP 消息传递系统。

这是我的代码

在此,我可以通过在最底部的行编辑中输入系统名称来向目标系统发送消息。最后一个是发送消息。

当客户端收到消息时,将弹出一个消息框。

有时它工作,有时它不工作。

我让这个模块通过在系统框中输入系统来向多个系统发送消息,用逗号(,)分隔它们

这里的主要问题是,我只能为第一个人发送消息,但不能为剩下的人发送消息。

任何人都可以帮助我如何解决这个问题。

4

2 回答 2

1

得到了解决方案。在过去的bin中更新

需要更新SendData定义

def SendData(self):

    TargetSystems = self.targetSystem.text().split(',')
    Msg2Send = self.lineedit.text()

    for TargetSystem in TargetSystems:

        self.Clientsocket.connectToHost(TargetSystem, PORT)
        self.Clientsocket.waitForConnected(-1)  # This is required data to be writing
        self.request = QtCore.QByteArray()
        stream = QtCore.QDataStream(self.request, QtCore.QIODevice.WriteOnly)
        stream.setVersion(QtCore.QDataStream.Qt_4_2)
        stream.writeUInt32(0)
        stream.writeQString(Msg2Send)
        stream.device().seek(0)
        stream.writeUInt32(self.request.size() - SIZEOF_UINT32)
        self.Clientsocket.write(self.request)
        self.nextBlockSize = 0
        self.request = None
        self.Clientsocket.disconnectFromHost() # .close() is not closing the socket connection, so i changed it this
于 2012-12-28T08:30:58.927 回答
0

尝试了一些选项,但 nmap 从未显示该端口是打开的,最好的解决方案就是在这里监听对话。

PyQt QTcpServer:如何向多个客户端返回数据?

启动服务器时的线路有问题,这是正确的。

self.tcpServer.listen(QtNetwork.QHostAddress("0.0.0.0"), PORT)

在每条发送的消息中都会调用函数 socketError,我猜这是家庭作业。

一直想用 pyqt 编写我自己的超级秘密消息应用程序,但我现在是一个懒惰的程序员(我被迫编写 PHP O_O 代码),也许现在我会基于你的。

于 2012-12-27T14:31:18.717 回答