Avatar
slavan
Člen
Avatar
slavan:

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:

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.