Merhabalar, Visual C++ (ve bazı .Net kütüphaneleri) kullanarak TCP üzerinden haberleşecek bir sunucu yazmakla meşgulüz. Yabancı forumlarda (daha çok soru & cevap platformlarında) gördüğüm birkaç yorumdan ötürü bu yolu izlerken neleri dikkate almamız gerektiğiyle ilgili sizlere sormak istedim. Her sınıfımızı Managed olarak tasarladık. Managed'in ne anlama geldiği anlamış değilim, açıp okumadım da, verdiği hatalardan yola çıkarak yaptığım varsayımlarla düzelttim birçok şeyi. Ama özetleyecek olursak, hiçbirşekilde düz pointer kullanmadık, array<T> kullandık, yeni obje oluştururken gcnew kullandık, hiçbirşeyi delete etmedik (gcnew kullanınca delete etmek gerekip gerekmediğini araştırmayışımızdan ötürü). Memory management'la ilgili olsun, genel olarak C++ veya .Net ile ilgili olsun, önerileriniz, tavsiyeleriniz varsa çok memnun olurum (z) duymaktan. İyi geceler. |
Merhaba, Sorum şu ki: TCP üzerinden işleyecek olan haberleşmenin Client'ından Server'a giden istekde, Request'in şu olduğunu varsayalım:
(Formatlamaya takılmayalım lütfen, biliyorum, kötü) Burada "admin" yerine şifrelenmiş "admin" i (veya şifrenin şifrelenmiş hali olsun atıyorum) koymak mı daha mantıklı, yoksa tüm bu string'i şifreleyip göndermek mi daha mantıklı? Detay Küçük bir amatör iş için TCP üzerinden birkaç işlem yapacak bir server yazmayla uğraşıyorum, C# kullanarak. Şu ana kadar birşeyler geliştirmiş durumdayım. Server'ımı Request-Response mantığıyla (terim adı varsa bilmiyorum, başka bir mantıkda çalışan server tipi var mı onu da bilmiyorum) işletmek istiyorum. Gerekli sistemi kurduğumu düşünüyorum. Henüz Unit-Test vb. bir Test yöntemi ile test etme şansım olmadı (baştan girişmediğim için üşendim), tam ismini bilmediğim ama herkesin amatörken yaptığı şekilde (console application üzerinden debugger vasıtasıyla) Şimdiye kadar Request ve Response'u şu mantık üzerine kurdum; Request -> int RequestCode ve Parameter obje kolleksiyonu barındıran bir sınıf. Parameter ise bir Dictionary'nin bir elemanı gibi Name ve Value'dan oluşuyor. Şimdi karşıma şöyle bir sorun geldi (sorun demiyeyim de daha önce karşılaşmadığım için "en iyi" çözüm yolunu bilmediğim bir ayrım diyeyim): Ben şuanda şifrelemek istediğim verileri (Request veya Response için) Parameter objesi oluştururken, Value'ya şifreleyip atıyorum, byte array'inden string'e dönüştürüp Request nesnesi oluşturup, onu da Serialize edip TCP üzerinden Server'a (Client için) veya Response'u Client'a gönderiyorum. XML'den vazgeçmemin nedeni de buydu, Şifrelenmiş bir metni string'e dönüştürüp, ondan XML oluşturmaya çalıştığımda karakter hataları alıyorum (her zaman değil, kontrol karakteri denk gelirse (?)). Ama farkettim ki, aslında Parameter sınıfının Value'sunu Serializable herhangi bir obje yapabilirim, daha sonra Parameter koleksiyonunu da bir şekilde serialize edebilirdim (tahmin ediyorum ki Serializable olan bir sınıfın list'i otomatik olarak serializable olmuyor ? sonuçta list serializable değil ?), en son Request veya Response'u da serialize eder, tüm veriyi şifreler TCP üzerinden gönderebilirim. Sorumu tekrarlayayım: Göndereceğim tüm veriyi şifreleyip göndermem mi daha mantıklı? Yoksa göndereceğim verinin yalnızca şifrelenmesini istediğim kısmını şifrelemem mi daha mantıklı? Teşekkürler, İyi forumlar. |
Merhaba, Az önce reddit'de gördüm WinObjC'yi deneme şansı olan oldu mu? Reddit Konusu Github İyi forumlar. |
Ön bilgi: kullandığım sınıflar; Button.h typedef void(*buttonmethod) (int buttonId, char buttonState); Potentiometer.h typedef void(*potmethod) (int potId, int potVal); Joystick.h class Joystick GS.h class GS main methodum; GS gs = GS(); Sorunum: main metodundaki o son satır "gs.AddJoystick(j1);" execute edildikten sonra bir sebepten ötürü ilk resimdeki hatayı alıyorum. Retry'a tıklayınca 2. resimdeki pencere geliyor, break deyince de 3. resimdeki yere yönlendiriyor beni. Program orada durduğunda watch ekranından axises'ın içeriğini şu şekilde görebiliyorum; ---------------------------------------------------------------------------------------------- this->axises[0] {id=1 sensivity=1 pin=1 ...} Potentiometer id 1 int sensivity 1 int pin 1 int val 0 int onval 0x01181249 {Ground System.exe!ptn(int,int)} void (int, int) * ---------------------------------------------------------------------------------------------- this->axises[1] {id=2 sensivity=1 pin=2 ...} Potentiometer id 2 int sensivity 1 int pin 2 int val 0 int onval 0x01181249 {Ground System.exe!ptn(int,int)} void (int, int) * ---------------------------------------------------------------------------------------------- this->axises[2] {id=0 sensivity=1 pin=3 ...} Potentiometer id 0 int sensivity 1 int pin 3 int val 0 int onval 0x01181249 {Ground System.exe!ptn(int,int)} void (int, int) * Tam olarak nedir hata anlamadım? Neden destructor çağırılmış onu da anlamadım? axisesı oluşturma şeklim şöyle; this->axises = new Potentiometer[size]; Değiştirme şeklim şöyle; char Joystick::AddAxis(Potentiometer pot) Genel olarak hatayla ilgili bilgilendirebilecek veya onun dışında yanlış yaptığım hatalı kullandığım şeyleri düzeltebilecek ufak bilgilendirmeler, yönlendirmeler çok yardımcı olacak, teşekkürler, iyi forumlar. < Resime gitmek için tıklayın >< Resime gitmek için tıklayın >< Resime gitmek için tıklayın > |
Az önceki oyunda başıma geçen olaydan ötürü bir gereksizi ifşa etmek istiyorum. Nicki OneOfKing1, talon oynadı az önceki oyunda, syndra oynuyordum lanede 2-3 kere ölünce bana kayıttasın, hack kullanıyorsun falan dedi. Dedim istediğin şekilde kanıtlarım gel internet cafede 1v1 atalım bakalım nasıl oluyormuş felan derken, oyun boyu aynı şeyleri tekrarladı. Hayatımın en iyi syndra oyunu da sayılmaz, %70'in üzerinde win ratiom var syndrayla. Bu nasıl bi lowluktur ya? ezilince, mekanik olarak kendinden üstün birini görünce hileyle suçlamak? Her neyse uzun lafın kısası ignorelamanız tavsiye edilir :) |
Merhabalar, HenningKarlsen'in UTFT kütüphanesi'ni kullanarak ekrana bitmap çizdirmeye çalışıyoruz. bitmapdatatype'ın ne olduğunu bulamasam da aşağı yukarı tahmin ediliyor koddan; col=pgm_read_word(&data[(ty*sx)+tx]); Sıkıntı şurada başlıyor, bitmap'i tutabilecek bir hafızamız yok şuanda. Yapabileceğimiz 2 şey var sanırım; 1. Hafızayı büyütmek 2. SD karta kaydedilen resmi çizdirmek 2.'yi biraz araştırdım, araştırırken hard disk'deki birşeyin adresiyle ilgili konularla karşılaştım. Genel olarak şöyle birşey söyleniyordu : "mapleme" ama bu mapleme örneklerinin hepsi (benim gördüklerim) bir işletim sistemine bağlı ve hard disk üzerinden çalışıyordu. Benim istediğim, veya merak ettiğim şu; SD kart'ta sakladığım bir veriyi dinamik bir hafızaya almadan (en azından tamamını) ekranıma gönderebilir miyim? Şu tarz bir çözüm geliyor aklıma, drawBitmap fonksiyonunu bu haliyle veya üzerinde oynanmış haliyle bitmapi parça parça çizdirebilirim. Ama bu da sanıyorum epey bi yavaşlık oluşturur FPS bakımından. Aşağıya yalnızca bitmap çizdirme kısmıyla ilgili gerekli fonksiyonları yazdım. Mümkün müdür aklımdaki şey? drawBitmap; void UTFT::drawBitmap(int x, int y, int sx, int sy, bitmapdatatype data, int scale) clrXY; void UTFT::clrXY() sbi, cbi; #define cbi(reg, bitmask) *reg &= ~bitmask setXY; void UTFT::setXY(word x1, word y1, word x2, word y2) writecomdata; void UTFT::LCD_Write_COM_DATA(char com1,int dat1) writedata; void UTFT::LCD_Write_DATA(char VH,char VL) writedata; void UTFT::LCD_Write_DATA(char VL) writecommand; void UTFT::LCD_Write_COM(char VL) includes; #include "UTFT.h" |
Merhabalar, http://www.tutorialspoint.com/cprogramming/c_pointer_to_an_array.htm adresindeki örneği kendimce değiştirmek istedim ve şöyle bir kod yazdım; #include <stdio.h> getP fonksiyonunun amacı şu: Parametreye girilen arrayi pointera eleman eleman çevirip geri döndürüyor. Ama bu kod şu haliyle çalışmıyor, yorum satırının da çalışır koda eklenmesi lazım. Ama neden? printf'e gönderilen 2. değer *(balance + i) bir işlem mi yapıyor? Cevaplarınız için teşekkür ederim, iyi forumlar. |
Merhabalar, C++ ile bir kelimenin içindeki ünlüleri veren bir fonksiyon yazdım; string *KelimedekiUnluler(string kelime) Normalde fonksiyon çıktı yapmayacak, test etmek için cout koydum ve çalışıyor. Ama geriye döndürdüğü değerde bir sıkıntı var. Ben bu fonksiyondan gelen değerleri bir string dizisine aktarmak istiyorum, fakat geriye dönen pointerdan hiçbirşekilde veri alamıyorum.
Mesela bunu denediğimde ilk önde eee çıktısını alıyorum fonksiyon içi cout'lardan daha sonra da program çalışmayı durduruyor ve 3221225477 değeriyle kapanıyor. Bu fonksiyonu pointer kullanmadan yazamaz mıyım? C++'ta bir fonksiyonun geri dönüş değeri string arrayi olabilir mi? |
Merhabalar yazılım geliştirme bölümüne de yazdım konuyu ama buraya da yazayım dedim. Arduino Leonardo üzerine taktığımız basit bir webcam'den görüntü almak istiyoruz. Webcam'den gelen veriyi analiz edebilmek için şöyle çok basit bir kod kullandık; int webCamPin = 2; Serial Monitor'e gelen tek veri 1 oldu (bir kere değil tabi sürekli). Benim sorularım şöyle; 1-VGA normal bir WebCam bir saniyede kaç frame yollar? 2-Bir frame -> width x height x pixel(R,G,B,A) -> 640x480x24 bit büyüklüğünde midir? 3-Arduinoda digital pinden gelen veriyi byte olarak okuyan hazır bir fonksiyon var mı? Çünkü bit hesabım doğruysa, 7372800 bit sırf bir frame için gönderiliyor ve 10 FPS desen kameraya çok büyük bir sayı yapar, açıkçası yukarıda kullandığım kodun bana bir saniyede 73728*10^3 kere bit yazabileceğini sanmıyorum, hadi println kullanmayayım yine de o kadar update rate'i yoktur heralde loop'un? Dolayısıyla bit bit okuma olayı biraz yalan gibi. Varsa bu işle ilgilenen, bilgisi olan, yol gösterirse sevinirim. Kolay gelsin. |
İki adet web sitesi ve bir de Java web server (yine domain name'i olmak koşuluyla) uygulaması sunmak üzere hosting firması arıyoruz. Tavsilerinizi bekliyoruz.