[ dvoglaviorao @ 21.03.2013. 18:39 ] @
Pozdrav.

Client/server aplikacija u C#, koristim TCP protokol, metode BeginSend i BeginRecieve. Na klijentu i serveru imam baze podataka, istog formata, po 3 kolone. Treba da omogućim slanje sadržaja baze podataka sa klijenta na server i obratno. Međutim, dešava se da pošalje prve dve vrste iz tabele i onda javlja grešku, zabudži se i sl. Slanje i primanje dobro funkcioniše. Pokušao sam da na strani koja šalje stavim Thread.Sleep(2000) (recimo 2s) i onda pošalje recimo prva 4 reda iz tabele, i stane. Milsim da je bafer u pitanju.

Zna li neko koji je najbolji način da se prenese tabela na gore opisan način preko TCP-a ili logiku kako da omogućim da moje rešenje radi?

Pomislio sam da svaki put kada prijemna strana dobije podatke da pošaljem na predajnu stranu neki znak da je primljeno, pa opet da šalje i tako dok ne isčita kompletnu tabelu (database u stvari), ali to mi deluje jako sporo?

Hvala unapred...
[ ravni @ 22.03.2013. 09:31 ] @
A mozda
• Remoting
• WCF
• message queues
[ Predrag Supurovic @ 22.03.2013. 10:29 ] @
Pretvori tabelu u JSON i onda šalji kao tekst. Možeš koristiti chunk ako je tabela veća.
[ mmix @ 22.03.2013. 10:52 ] @
2013og leta gospodnjeg ne postoji vise nijedan valjani razlog zasto bi koristio sockete i transportni layer za ovu primenu, narocito u C#u. Postoji gomila protokola na poslednjem OSI nivou (aplikativnom), kao sto je http(s). Same podatke mozes seriajlizovati u Json (kao sto je Predrag predlozio) ili u xml (koji ti je mozda malo bolja opcija za c# - c# komunikaciju) i posaljes preko http(s) protokola.

A onda kad vidis da je i to bespotrebno komplikovano, uzmes i napravis sve to u WCFu kao sto ti je ravni predlozio.

Nema potrebe da izmisljas toplu vodu.
[ dvoglaviorao @ 23.03.2013. 23:08 ] @
Prvo da vam se još jednom zahvalim za pomoć i odgovore! Vi ste to prvi uradili na ovom forumu na 3-4 teme koje sam otvorio sa različitim problemima.

Trebalo mi je samo mišljenje u stvari, da pogledam kako to može da se uradi.

Nekako sam uradio na moj neki način i proradilo je juče.

Nisam hteo da komplikujem pitanje iz više razloga, a istina je da je klijentska aplikacija na uređaju koji ima instaliran Windows CE na sebi, tako da sa obzirom da koristim Compact Framework ograničen sam podosta. No, nije ni bitno, dobio sam par mišljenja koja će mi značiti u budućnosti na "normalnim" aplikacijama.

Radim to za master rad, a sa obzirom da sam mehatroničar i da u toku studija nisam imao neka zavidna predavanja o programiranju rešio sam da proširim svoje znanje tako što ću za rad uzeti nešto sofrverski da odradim. Odtuda i vama možda smešna i banalna pitanja, jer iskreno, krenuti od nule i uraditi master rad je ogroman zalogaj za nekih 6 meseci.

Svako dobro vam želim!
[ Dejan Carić @ 24.03.2013. 08:27 ] @
Ako je u pitanju master rad, možda je bolje da kreneš da radiš sa ovim novim/popularnim tehnologijama.

Na serverskoj strani Web API umesto WCF-a.
Podatke možeš da serializuješ u Json. Json.NET je podržan i u compact framework-u.

Još ako budeš ubacio await / async eto veselja i za tebe i za mentora :)
[ dvoglaviorao @ 24.03.2013. 09:22 ] @
Hvala vam na ovim informacijama!

Kada sam rekao da koristim TCP protokol, zaboravio sam da napomenem da aplikacje treba da rade u LAN okruženju, oprostite. U svakom slučaju informacije će mi značiti jer me interesuje programiranje a i lakše ću naći posao kao programer danas u Srbiji nego kao robotičar ;)

A rad sam uradio, ostale su samo još sitnice neke da popravim, osim ako mi mentor ne "nakači" još nešto kada odem na kosnultacije, što je do sada bila praksa :D

Da ne bih dužio, sa ovim primerom sam počeo i recimo da mi idejno aplikacije rade tako

Chat application TCP

Koliko je ovo in i pouzdano za ovako nešto ne mogu da prosudim, to sam bio našao i tu i ostao. Ovo što sam zakačio je za časkanje preko servera, na to sam dodao slanje i učitavanje baza podataka na server i sa servera.

Ovako nešto me je zainteresovalo pa možda i sam krenem kući da radim nešto...