Qt ile SOCKS5 üzerinden TCP akışı açma
Hedefe bağlanmadan önce QTcpSocket'in açık proxy'sini ayarlayın; Qt Network'ü GUI gereksinimi olmadan kullanın.
Qt Network, bir TCP soketi için SOCKS5'i doğrudan müzakere edebilir. Mevcut bir Qt uygulamasında soketi bağlanmadan önce yapılandırın:
QNetworkProxy proxy(
QNetworkProxy::Socks5Proxy,
"proxy.example.net",
1080
);
socket.setProxy(proxy);
socket.connectToHost("service.example.net", 12345);
socket, mevcut bir QTcpSocket. Örnekteki hedef ve port, uygulamanın TCP hizmetini temsil eder. Qt önce proxy'ye ulaşır, ardından ondan bu hedefe bağlanmasını ister. Genel olarak erişilebilen bir TCP hizmeti ve genel bir aracıya izin verildiğinde, SOCKS5 proxy listesi proxy hesabı gerektirmeyen bu örnek için adaylar sunar. Adayın hizmetin gerçek ana bilgisayarına ve portuna izin verdiğini doğrulayın.
Normal eşzamansız soket sinyalleri hâlâ geçerlidir: uygulama verilerini değiştirmeden önce connected() olayını bekleyin ve errorOccurred() olayını işleyin. Bağlantı kullanımda olduğu sürece soket nesnesini canlı tutun. Bloklayan kod için bunun yerine Qt'nin belgelenmiş bekleme yöntemlerini bilinçli olarak belirlenmiş bir zaman aşımıyla kullanın.
Bu, widget tabanlı bir GUI değil Qt Network gerektirir. Bu açık ayar yalnızca bu sokete aittir. Diğer soketler uygulamanın varsayılanlarını koruyabilir veya başka bir proxy seçebilir. Bu soketin doğrudan olması için bağlanmadan önce proxy türünü QNetworkProxy::NoProxy olarak ayarlayın.