Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
slavan
Člen
Avatar
slavan:28.1.2015 11:38

Zdravím všechny,
dostal jsem za úkol rozchodit TCPIP komunikaci s terminálem Ingenico ČS a nebudu zastírat, že je to můj první samostatný projekt v Csharpu. Udělal jsem si konzolový server a klient ti spolu komunikují bez problémů. V momentě kdy jsem vyměnil klienta za terminál, dochází mi k neustálému ukončování spojení, předpokládám že ze strany terminálu. Je to v následující konstrukci (kód serveru) při testování zprávy KEEP_ALIVE, která zkouší každých 10 vteřin, jestli server žije:

byte[] bytes = new byte[1024];
byte[] zpatky = new byte[6];
zpatky[0] = 2;
zpatky[1] = 21;
zpatky[2] = 0;
zpatky[3] = 0;
zpatky[4] = 127;
zpatky[5] = 3;

while (true) // hlavní cyklus
{
i = stream.Read(bytes, 0, bytes.Length);
while (i != 0)
{
i = stream.Read(bytes, 0, bytes.Length);
}
stream.Write(zpat­ky, 0, 6);
}

když se hlavní cyklus projíždí podruhé, na příkazu stream.read vyskočí hláška, že SW v hostitelském počítači ukončil spojení.

když celý "while (i != 0)" cyklus vynechám, k rozpojení nedochází, ale to zase riskuju, že se mi nenačtou ze soketu všechny data. Nebo ne?

Netušíte někdo proč se tak děje?

Díky

 
Odpovědět
28.1.2015 11:38
Avatar
slavan
Člen
Avatar
Odpovídá na slavan
slavan:29.1.2015 11:00

Celý problém byl v tom, že jsem měl špatně nastavený antivir směrem ven a po pokusu o zápis do streamu se mi vlastní poč odpojil, neb to měl zakázané

 
Nahoru Odpovědět
29.1.2015 11:00
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.