내 질문에 대한 몇 가지 스레드를 본 적이 있지만 여전히 문제를 해결할 수없는 것 및 응답을 충분하지 않습니다. 그래서 여기에 과제가 있습니다 : 저는 2 대의 PC를 가지고 있습니다. 하나는 간단한 테스트 데이터로 100 개의 UDP 패킷을 전송해야하며 다른 머신은 데이터 그램을 읽어야합니다.QUdpSocket 클라이언트 - 서버 원격 호스트에 연결할 수 없습니다.
서버는 : 다음과 같이 내 코드는
m_socket.udp = 새로운 QUdpSocket (이);
if (m_socket.udp->bind(QHostAddress("192.168.32.154"), 1234)) {
m_socket.udp->connectToHost(QHostAddress("192.168.32.154"), 1234);
m_socket.udp->waitForConnected();
}
connect(m_socket.udp, SIGNAL(connected()),
this, SLOT(handleConnection()));
connect(m_socket.udp, SIGNAL(readyRead()),
this, SLOT(readyReadUdp()));
이렇게 ... 먼저 - 컴퓨터 1의 IP 바인딩이 실패합니다. IP로 지정해서는 안됩니다.
클라이언트는 간단하다 : 와이어 샤크에서 볼 때
이p_socket = new QUdpSocket(this);
p_socket->connectToHost(QHostAddress("192.168.32.94"), 1234);
connect(p_socket, SIGNAL(connected()), this, SLOT(writeDgram()));
....
void writeDgram() {
p_socket->write(QByteArray("test"));
}
그래서 클라이언트 코드, 내 서버 시스템에 제공됩니다. 하지만 내 서버 Qt 코드가 실패합니다. 도움이 필요 하신가요?
좀 더 구체적으로 알려주세요. wireshark에서 뭘 봤니? "첫째로, 기계 1의 IP에 대한 바인딩이 실패"한다는 것은 무엇을 의미합니까? – Prabhu
나는 원격 호스트에 바인딩하고있다. 예를 들면 192.168.32.150 포트는 1234 번 포트이고 1 번 머신은 192.168.32.150이다. 기다리고있는 머신에 100 개의 데이터 그램을 보낸다. 2 개의 UDP 소켓을 연결하는 간단한 예가 좋습니다. 그러나이 예는 2 대의 컴퓨터 사이에 있어야합니다. –
2 대의 컴퓨터간에 데이터 그램을 거의 교환하지 않는 것이 있습니까? 아직 답변이 없습니까? –