Articles of UDP

Perforation de trous UDP (c ++ / winsock)

utilisateurs stackoverflow! J’ai une application qui doit traiter avec p2p, et c’est comme ça que je parviens à UDP Hole punching. Mais j’ai eu des problèmes avec la mise en œuvre. J’espère que vous pouvez me donner des conseils. J’ai un serveur, qui fonctionne parfaitement et présente les clients les uns aux autres, mais les […]

Détection de dépassement de mémoire tampon de socket UDP

Je développe un outil multiplate-forme qui capture plusieurs stream udp avec différents débits binarys. boost :: asio est utilisé pour la mise en réseau. Existe-t-il un moyen de détecter la situation lorsque la mémoire tampon udp était pleine et qu’une perte de données sur le socket pouvait se produire? La seule façon dont je peux […]

comment résoudre ce minuteur linux multiple avec un seul gestionnaire de signal

/ * Le gestionnaire vérifie que la valeur stockée dans sival_ptr correspond à une variable timerID donnée. Le sival_ptr est le même que celui que nous avons défini dans makeTimer (), bien qu’il existe ici dans une structure différente. De toute évidence, il a été copié de là à ici sur le chemin de ce […]

Exemple: Boost C ++ UDP ne peut pas transmettre sur Internet

Bonjour, je teste avec le serveur client Boost C ++ UDP. J’ai pris l’un des exemples fournis avec ASIO et l’ai légèrement modifié. Cela fonctionne très bien sur le réseau local, mais lorsque je héberge le serveur sur l’un de nos serveurs avec des ports correctement redirigés, cela ne fonctionne pas. J’exécute le serveur UDP […]

Double liaison de socket UDP sous Linux

En C ++, quand je cours (alerte rouge! Pseudo-code) bind(s1, ) bind(s2, ) sur deux sockets UDP différents ( s1 et s2 chacun créé avec un appel à socket() ), j’ai des problèmes. Sous Linux (Ubuntu), la double liaison semble bien se passer. Sous Windows, toutefois, la double liaison échoue et l’appel de bind() la […]

UDP Connect a toujours du succès

J’utilise Boost ASIO pour me connecter à un Arduino Nano avec un Ethernet Shield over ethernet. Voici la configuration Arduino: #include ether.staticSetup(“10.0.0.4”, “10.0.0.1”); ether.udpServerListenOnPort(&callback_function, 1337); C’est mon code C ++ qui s’y connecte: Entête #include #include #include #include #include #include #include boost::system::error_code error_1; boost::shared_ptr io_service_1; boost::shared_ptr socket_1; Initialiser // 1. reset io service io_service_1.reset(); io_service_1 […]

Comment envoyer un std :: vector en utilisant asio :: UDP socket.send_to

J’essaie d’ envoyer de manière synchrone un std::vector via boost::asio::ip::udp depuis mon application serveur vers l’application client avec le code suivant, comme ceci: boost::system::error_code ignored_error; std::vector buf_data; std::size_t len = socket.send_to(boost::asio::buffer(buf_data), remote_endpoint, 0, ignored_error); Cela provoque un blocage et socket.send_to ne retourne jamais. Cependant, si j’essaye d’envoyer un struct comme ci-dessous, ça marche bien struct […]

Le serveur est toujours en cours d’exécution même si le client a cessé d’envoyer des messages

sendmmsg plusieurs datagrammes UDP dans un cycle et les reçois à l’aide d’appels système sendmmsg et recvmmsg . Mon code côté client est le suivant: struct mmsghdr *msgs; struct iovec *iovecs; while(interval){ msgs = new struct mmsghdr[no_of_packets]; iovecs = new struct iovec[no_of_packets]; for(int i = 0;i < no_of_packets;i++){ memset(&iovecs[i], 0, sizeof(iovecs[i])); iovecs[i].iov_base = (void *) […]

Les sockets UDP définissent-ils les données reçues en messages distincts ou recv lit-il autant de données que possible simultanément?

Disons que j’ai une application émetsortingce et une application récepsortingce qui communiquent via UDP. Tout d’abord, dans l’application d’envoi, j’envoie des données dans deux appels séparés. D’abord, j’envoie ces 15 octets: [MYHEADER]hello … puis, tout de suite après, j’envoie 15 autres octets: [MYHEADER]world Maintenant, dans l’application de réception, j’écoute sur le même port avec un […]

Comment recevoir le paquet UDP approprié dans QT?

J’essaie d’écrire un programme QT pour recevoir un paquet UDP. socket = new QUdpSocket(this); bool result = socket->bind(QHostAddress(“150.100.50.88”),45454); qDebug() << result; if(result) { qDebug << "PASS"; } else { qDebug <hasPendingDatagrams()) { QByteArray datagram; datagram.resize(socket->pendingDatagramSize()); socket->readDatagram(datagram.data(),datagram.size(),&sender,&port); qDebug() <<"Message From :: " << sender.toString(); qDebug() <<"Port From :: "<< port; qDebug() <<"Message :: " << datagram; […]