Tockra
Lt. Commander
- Registriert
- Dez. 2008
- Beiträge
- 1.063
Hallo Leute,
ich habe mir einen kleinen Wrapper für die UDP Sockets geschrieben, der ähnlich wie die Klasse DatagramSocket in Java funktioniert.
Nun bin ich soweit, dass der Socket von einer anderen Anwendung Daten empfangen kann, habe aber aktuell ein Problem damit selbst Nachrichten raus zu schicken.
Hier mal mein Programcode:
Nun blockiert meine andere Anwendung die auf Port 2323 auf ein UDP Packet wartet, aber die c++ Anwendung sendet kein Paket raus. Habe mal in Wireshark geschaut und auch dort kein Paket an Port 2323 gefunden... Es wird keine IOException geworfen...
Ich verstehe nicht wirklich wo der Fehler liegt...
Gruß
T
ich habe mir einen kleinen Wrapper für die UDP Sockets geschrieben, der ähnlich wie die Klasse DatagramSocket in Java funktioniert.
Nun bin ich soweit, dass der Socket von einer anderen Anwendung Daten empfangen kann, habe aber aktuell ein Problem damit selbst Nachrichten raus zu schicken.
Hier mal mein Programcode:
Code:
void ClientBroadcastListener::listen() {
while (true) {
try {
char buf[33];
SOCKADDR_IN addr;
dc.recvfrom(buf, 32, &addr);
cout << "Message von: " << inet_ntoa(addr.sin_addr) << ":"<< addr.sin_port << " Nachricht: " << buf << endl;
char* s = "Suck my piep";
addr.sin_port = htons(2323); //Diese erneute Zuweisung habe ich nur zur Sicherheit gemacht.
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = inet_addr("192.168.178.3");
dc.connect(addr);
dc.sendto(s, 32);
//dc.disconnect();
}
catch (Exception& e) {
cout << e.what();
break;
}
}
}
void DatagramSocket::connect(SOCKADDR_IN inetAddress) {
this->inetAddress = inetAddress;
port = inetAddress.sin_port;
}
void DatagramSocket::sendto(char* buf, int length) {
cout << inet_ntoa(inetAddress.sin_addr) << endl;
if (::sendto(s, buf, length, 0, (sockaddr *)&inetAddress, sizeof(inetAddress)) == SOCKET_ERROR) {
throw IOException("Fehler beim Senden an die gegebene Addresse");
}
}
Nun blockiert meine andere Anwendung die auf Port 2323 auf ein UDP Packet wartet, aber die c++ Anwendung sendet kein Paket raus. Habe mal in Wireshark geschaut und auch dort kein Paket an Port 2323 gefunden... Es wird keine IOException geworfen...
Ich verstehe nicht wirklich wo der Fehler liegt...
Gruß
T