首页 > 解决方案 > PyQt5 QUdpSocket 未绑定到地址和端口

问题描述

def main():
    app = QCoreApplication([])
    local_ip = QHostAddress('192.168.43.126')
    port = 2359
    udp_socket = QUdpSocket()
    b = QByteArray()
    b.append('i0000,0000')
    udp_socket.writeDatagram(b, QHostAddress('192.168.43.1'), port)
    udp_socket.bind(QHostAddress('192.168.43.126'),port)
    while True:
        #print('in the while loop')
        while udp_socket.hasPendingDatagrams():
            #print('has pending datadrams ')
            s = udp_socket.readDatagram(10)
            print(s)

    app.exec_()


if __name__ == '__main__':
    main()

这我不工作套接字没有绑定到端口我不知道为什么我需要让服务器等待消息但不使用信号

标签: pythonpyqt5qudpsocket

解决方案


试试看:

import sys
from PyQt5.QtGui     import *
from PyQt5.QtCore    import *
from PyQt5.QtWidgets import *
from PyQt5.QtNetwork import QUdpSocket, QHostAddress

def main():
    app = QCoreApplication([])
    local_ip = QHostAddress('192.168.43.126')
    port = 2359
    udp_socket = QUdpSocket()
    b = QByteArray()
    b.append('i0000,0000')

    #udp_socket.bind(QHostAddress('192.168.43.126'),port)
    udp_socket.bind(QHostAddress.LocalHost, port)      

    #udp_socket.writeDatagram(b, QHostAddress('192.168.43.1'), port)
    udp_socket.writeDatagram(b, QHostAddress.LocalHost, port)

    while True:
        #print('in the while loop')
        while udp_socket.hasPendingDatagrams():
            #print('has pending datadrams ')
            s = udp_socket.readDatagram(10)
            print("\nQHostAddress.LocalHost", QHostAddress(QHostAddress.LocalHost).toString())
            print(s)

    app.exec_()


if __name__ == '__main__':
    main()

在此处输入图像描述


推荐阅读