[SFML Network Udp] Łączenie z publicznym Ip
Ostatnio zmodyfikowano 2017-03-24 16:32
krainamodu Temat założony przez niniejszego użytkownika |
[SFML Network Udp] Łączenie z publicznym Ip » 2017-02-15 20:39:06 Cześć, Chciałbym napisać program który by wysyłał dane do innego programu w innej sieci używając Sfml/Network protokołem UDP. Problem: wiadomości nie dochodzą przy użyci publicznego ip. Kod programu wysyłającego dane: UdpSocket socket; socket.bind( Socket::AnyPort ); IpAddress receiverIp = IpAddress::getPublicAddress(); char data[ 100 ] = { 'c', 'z', 'e', 's', 'c' }; if( socket.send( data, sizeof( data ), receiverIp, 57150 ) != Socket::Done ) { cout << "err1" << endl; } else cout << "wyslano" << endl; Kod programu odbierającego: UdpSocket socket; unsigned short port = 57150; socket.bind( port ); IpAddress myIp = IpAddress::getPublicAddress(); char data[ 100 ]; size_t received;
if( socket.receive( data, sizeof( data ), received, myIp, port ) != Socket::Done ) { cout << "err2" << endl; } else { cout << "otrzymano: " << data << endl; } Gdy używam lokalnego ip(IpAddress::getLocalAddress()) to wszystko działa, jednak zależy mi na komunikacji z komputerem poza siecią lokalną. Próbowałem z wyłączonym firewallem. |
|
pekfos |
» 2017-02-15 21:09:56 Przekierowanie portów zrobiłeś? |
|
krainamodu Temat założony przez niniejszego użytkownika |
» 2017-02-16 00:31:03 przekierowałem i działa, dzięki |
|
wojtaszek23 |
» 2017-03-24 16:01:44 Odświeżę temat, mam nadzieję, że nikt mnie nie zlinczuje za brak wiedzy czy coś ;) Co oznacza przekierowanie portów? Najlepiej, gdyby Pan krainamodu zechciał przesłać kod z protokołem przekierowanym, byłbym wdzięczny. Sam obecnie param się z problemem połączenia za pomocą tcpSocket'a i jak na razie udało mi się połączyć między kompami z jednego routera, ale z kolegą, który mieszka parę km ode mnie już nie. Żeby nie zaśmiecać miejsca, wkleję linka do ideone: >> https://ideone.com/iko901 << do swojego krótkiego kodu. Chodzi mi jak na razie jedynie o udaną próbę połączenia z komputerem o innym adresie publicznym, niż mój za pomocą protokołu tcpSocket. |
|
DejaVu |
» 2017-03-24 16:32:26 |
|
« 1 » |