Přenos z jednoho klientu na druhy – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Přenos z jednoho klientu na druhy – C / C++ – Fórum – Programujte.comPřenos z jednoho klientu na druhy – C / C++ – Fórum – Programujte.com

 

fnenks+1
Stálý člen
27. 10. 2012   #1
-
0
-

Zdravím,

pracuju na tcp serveru (v QT) ktery zpracovává dva ruzne typy klientu. Tyto klienty si mezi sebou muzou posilat soubory. Prenos z jednoho klientu na druhy funguje jak ma, problem ale nastava kdyz posilam soubor z druheho klientu na prvni. Velikost poslaneho souboru je o par bajtu mensi, zajimave ale je, ze kdyz soubory zhasuju pomoci Sha1 tak vysledek je stejny.

Nevi nekdo co to sakra je?  

Nahlásit jako SPAM
IP: 88.101.84.–
KIIV
~ Moderátor
+43
God of flame
27. 10. 2012   #2
-
0
-

postrada to akorat par drobnejch informaci.. typ souboru, systemy na obou stranach a tak...

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
fnenks+1
Stálý člen
30. 10. 2012   #3
-
0
-

uz jsem to vyresil, ted mam jiny problem:

Kazdy muj packet konci znakem noveho radku, tzn ze kdyz presouvam na server data ze souboru, tak si je musim nacist a nahradit znaky noveho radku, tzn:

data.replace("\n","ntx::line");

po presunu na serverovou cast to zas vratim zpatky:

data.replace("ntx::line","\n");

Stejne se ale znak noveho radku nenahradi, pac mi to porad posila packet dlouhy treba jen 10-50znaku misto cca 1024 znaku.

Zatim jsem to poresil tak ze dam data do toHex(), poslu, vratim pomoci fromHex(), coz neni moc efektivni pac kazdy znak ma jen 16 hodnot (0-F), tzn 16x pomalejsi, takze se mi toto reseni nezamlouva

Nahlásit jako SPAM
IP: 88.101.84.–
KIIV
~ Moderátor
+43
God of flame
30. 10. 2012   #4
-
0
-

a proc tam cpes novy radky? nadefinuj si jakym protokolem chces, aby probihala komunikace a ten pak implementuj... kdyz tam budes posilat nejaky radkovani kteryho se chces nakonec zbavit, tak je to vcelku jen zbytecna rezie

klidne si posli delku packetu a pak nacti tolik dat a neres terminalni znaky

Nahlásit jako SPAM
IP: 62.216.147.–
Program vždy dělá to co naprogramujete, ne to co chcete...
fnenks+1
Stálý člen
30. 10. 2012   #5
-
0
-

mno pouzivam tridu QTcpSocket z QT Framework kde mi tato trida spusti signal readyRead() pokazde kdy prijdou data, tento signal spusti slot ktery mam reseny pomoci "canReadLine()":

while (socket->canReadLine())
{
   Packet packet = Packet(socket->readLine());

   //zpracovani packetu
}

mam to proste takhle resene na lajny

Nahlásit jako SPAM
IP: 88.101.84.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 35 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý