6 Ekim 2017 Cuma

asio udp endpoint Sınıfı

Giriş
asio::tcp::endpoint sınıfı ile kardeştir.

Constructor - default
Şöyle yaparız.
endpoint ep;
Constructor - port numarası
Sunucu socketlerde kullanılır.
Şöyle yaparız.
int port_number = ...;
endpoint ep (udp::v4(), port_number)
Şöyle yaparız. Ancak udp::v4() kullanımı bence daha iyi.
unsigned port = 12345;
endpoint ep (boost::asio::ip::address_v4::any(), port);
Constructor - ip + port
İstemci socketlerde kullanılır. Şöyle yaparız.
std::string ip_addr = "224.0.0.177";
endpoint ep (boost::asio::ip::address::from_string(ip_addr), 7076);
C++11 ile şöyle yaparız.
endpoint ep {ip::address::from_string("100.71.188.14"s), 9999u };
Constructor - ip + port
Sunucu socketlerde şöyle yaparız. 0.0.0.0 INADDR_ANY ile aynıdır.
endpoint ep (boost::asio::ip::address::from_string("0.0.0.0"), 10114);
Constructor - broadcast + port
İstemci socketlerde kullanılır. Şöyle yaparız.
endpoint ep = (boost::asio::ip::address_v4::broadcast(), 4000);
Constructor - resolver ile 
Resolver enpoint listesine iterator döner. İlk endpoint ile çalışmak için şöyle yaparız.
std::string host = ...;
std::string server_port = ...;

udp::resolver resolver (io_service);
udp::resolver::query query (udp::v4(), host, server_port);
ep = *resolver.resolve (query);
operator != metodu
Şöyle yaparız.
if(ep != udp::endpoint())
{
  ...
}
protocol metodu - getter
Sunucu UDP socket açarken kullanabiliriz. Şöyle yaparız.
boost::asio::ip::udp::socket socket;

boost::asio::ip::udp::endpoint ep = ...;
socket.open (ep.protocol());


Hiç yorum yok:

Yorum Gönder