• 06-12-2016, 20:13:51
    #1
    [VC++]
    WSARecv ile paketleri dinleyip bir kuyruğa ekleme yapıyorum
    Sırayla paketleri işleyerek tekrar WSARecv'i başlatıyorum normal olarak.
    Sorun şu ki. Saniyede 1000 Paket Geldiği zaman CPU Tavan yapıyor.
    Bunun için Bir Çözüm vs. Varmıdır
  • 06-12-2016, 21:02:54
    #2
    hic kullanmadim (daha dogrusu cpp ile pek isim olmuyor hatta hic isim olmuyor),
    ancak bu durumlarda multi-threading in nimetlerinden faydalanmak gerekiyor.

    burada bir kucuk makale var

    http://www.serverframework.com/async...ad-safety.html

    ve orada verilmis bir link var, ornek kodu inceleyebilirsin.

    http://stackoverflow.com/questions/2...l-c-on-windows

    ve ayrica "multithreaded socket programming in c++" gibi bir arama sana bir cok kaynak getirecektir.
  • 06-12-2016, 23:27:10
    #3
    şuanda zaten multi thread kullanıyorum
    sadece aşırı paket geldiğinde cpu artıyor işlem yavaşlıyor
  • 06-12-2016, 23:33:46
    #4
    paketlerin hepsini islemek zorunda misin?
    ayrica saniyede gelen paketlerin bu kadar yük olusturacagini sanmiyorum, yani bir saniyede alabilecegin max. veri bellidir ki o kadar bile geldigini dusunmuyorum ve cpu ozellikle core sayisi fazlaysa bu olayi kolaylikla kaldirir, muhtemelen kodlamadan kaynakli bir sikinti yasiyorsun. O yuzden orneklere baksan ve socket programlama ile ilgili kitaplara goz atsan daha faydali olur.

    forumda pek c++ ile ilgilenen yok zaten.


    aklima geldi, buffer degerini buyuterek de bir cozume ulasabilirsin, gelen verileri buffer'a atip belli bir sure sonra onlari isleyip buffer'i bosaltman daha faydali olabilir. dedigim gibi bunla ilgili ornekleri incelemen sana kod yaklasimi konusunda fikir verecektir