<html>
<head>
<meta content="text/html; charset=iso-8859-2"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Nálunk is ez van, bár "kicsiben": hetente 2.5 óra fejenként
(jellemzően péntek délután), pár havonta egy egész napos
előadás-sorozat. <br>
Az 1 nap sajnos kicsit sok lenne :)<br>
<br>
<div class="moz-cite-prefix">On 2016-01-19 09:08, József Keresztes
wrote:<br>
</div>
<blockquote
cite="mid:CACOtzjgW2PNhMbMcRRxqwf8=4a72cugwNLcJrC2qAZvsqQJkSw@mail.gmail.com"
type="cite">
<div dir="ltr">
<div>
<div>
<div>Sziasztok !<br>
<br>
</div>
Csak önképzésről van szó, ez is egy szokásos hobby projekt.
Kicsit eltérve a témától mesélték hogy a skandináv
államokban van olyan műszaki terület ahol a munkahelyeken 1
héten 1 napot kötelező hobby-projekttel tölteni. Nem is
hülyeség. Csináltál már 1000 webes alkalmazást és azt mondod
a főnöködnek hogy most 3 egymás utáni pénteken a TCP - UDP
rejtelmeivel foglalkozol mert az érdekel, kitalálsz hozzájuk
új protokolt stb.<br>
</div>
Én benne lennék, de sajnos nálunk ilyen nincs, illetve ha van
időd a munkahelyen még mindig jobb ilyenekkel foglalkozni mint
tetrist játszani :)<br>
<br>
</div>
Joe<br>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">2016. január 18. 22:04 Gabor Szokoli
írta, <span dir="ltr"><<a moz-do-not-send="true"
href="mailto:szocske@gmail.com" target="_blank">szocske@gmail.com</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div>Szia!<br>
<br>
</div>
<div>Ha ez eles project, akkor meselj meg a
kovetelmenyekrol, es segitunk protokollt/konyvtarat
valasztani.<br>
</div>
<div>Ha mar mukodo rendszer, es az ujrakonnektalagatas nem
okoz teljesitmenyproblemat, ne piszkald:<br>
<a moz-do-not-send="true"
href="https://sites.google.com/site/interactiveflowchart/"
target="_blank">https://sites.google.com/site/interactiveflowchart/</a><br>
</div>
<div><br>
<br>
</div>
<div>Feltetelezve, hogy onkepzesrol van szo, a HTTP-t
pedig gondolom ismered, ott pont erre valo a
Content-Length header, illetve a chunk meret minden
chunk elejen. Arra keress ra, hogy "Connection:
keep-alive", meg "Transfer-Encoding: chunked"<br>
<br>
</div>
<div>Lehet specialis karakterrel/karaktersorozattal is
jelolni az uzenet veget, de akkor az a karakter/sorozat
az uzenetben nem fordulhat elo, ha megis, akkor
escape-elni kell, es azt mindenki utal.<br>
</div>
<div><br>
</div>
<div>Hasznalhatsz TCP helyett UDP-t, ha minden uzenet
kisebb 64K-nal, felcserelodhetnek uzenetek, es nem baj,
ha neha egy-egy elvesz. (ahanyszorosa az uzenet merete
az MTU-nak, annal kevesbe "neha"...)<br>
<br>
</div>
<div>Van (Volt? Lesz?) olyan is, hogy SCTP, ami sok minden
mas mellett azt is tudja, amit te szeretnel, de ugy
tunik csak DC tapos servereken mukodik (en legalabbis
mindig csak telco-knal latom.) De erdekes, es talan
egyszer majd elterjed.<br>
</div>
<div><br>
<br>
</div>
<div>Szocske<br>
</div>
</div>
<div class="HOEnZb">
<div class="h5">
<div class="gmail_extra"><br>
<div class="gmail_quote">2016-01-18 8:07 GMT-05:00
Dénes Medzihradszky <span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:medzihradszky.denes@gmail.com"
target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:medzihradszky.denes@gmail.com">medzihradszky.denes@gmail.com</a></a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div class="gmail_default"
style="font-family:arial,helvetica,sans-serif">Zsombor
tökéletesen megfogalmazta a megoldást, de
Magyusznak is igaza van :)<br>
<br>
</div>
<div class="gmail_default"
style="font-family:arial,helvetica,sans-serif">Valóban
arról van szó, hogy az összetartozó
bájtsorozat (nevezzük message-nek) átküldése
után ezen a szinten nekünk kell valamilyen
jelet kitalálni, amit a kliens és a szerver is
ismer és ezzel jelezhetjük a szervernek, hogy
a teljes üzenet átment. <br>
</div>
<div class="gmail_default"
style="font-family:arial,helvetica,sans-serif">Ha
belegondolunk, rajtunk kívül senki sem tudja,
hogy mit is jelent az átküldött bájtsorozat.<br>
</div>
<div class="gmail_default"
style="font-family:arial,helvetica,sans-serif">Van
viszont egy alternatív megoldás, a
DatagramPacket, ami nem TCP, hanem UDP alatt
működik. Ott egyértelmű, hogy egy átküldött
üzenet van csak a csomagban.<br>
<br>
</div>
<div class="gmail_default"
style="font-family:arial,helvetica,sans-serif">Csatolom
a mintakódokat. <br>
<span><font color="#888888"><br>
</font></span></div>
<span><font color="#888888">
<div class="gmail_default"
style="font-family:arial,helvetica,sans-serif">Dénes
<br>
</div>
<div class="gmail_default"
style="font-family:arial,helvetica,sans-serif"><br>
</div>
</font></span></div>
<div class="gmail_extra"><br>
<div class="gmail_quote"><span>2016-01-18 13:51
GMT+01:00 Zsombor <span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:gzsombor@gmail.com"
target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:gzsombor@gmail.com">gzsombor@gmail.com</a></a>></span>:<br>
</span>
<div>
<div>
<blockquote class="gmail_quote"
style="margin:0 0 0 .8ex;border-left:1px
#ccc solid;padding-left:1ex">
<div dir="ltr">
<div>Erre szoktak kitalálni
protokollt, hogy ilyen probléma ne
forduljon elő :)<br>
<br>
<br>
</div>
Üdv<br>
</div>
<div>
<div>
<div class="gmail_extra"><br>
<div class="gmail_quote">2016-01-18
13:00 GMT+01:00 József Keresztes
<span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:xesj.hu@gmail.com"
target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:xesj.hu@gmail.com">xesj.hu@gmail.com</a></a>></span>:<br>
<blockquote class="gmail_quote"
style="margin:0 0 0
.8ex;border-left:1px #ccc
solid;padding-left:1ex">
<div dir="ltr">
<div>
<div>
<div>
<div>Sziasztok !<br>
<br>
</div>
Megkaptam Dénes
mintakódjait is
köszönöm, azt is
átnéztem. <br>
Közben
megfogalmazódott egy
kérdés, amibe most
bele is futottam, de
csak azért mert
szerettem volna
mélyebb szintre menni,
és tényleg megérteni
hogy működik a dolog.
A probléma a
következő: <br>
<br>
A TCP kliens szépen
elkezdi küldözgetni a
byte-okat a szervernek
az OutputStream-en
keresztül, a végén a
flush() metódust is
meghívja, majd a
bájtsorozat átküldése
után elkezdené olvasni
az InputStream-et.<br>
</div>
A probléma az hogy a TCP
server nem tudja hogy
vége a byte-sorozatnak,
mert ugye honnan is
tudná ??? Márpedig ő vár
egy EOF jelre (-1),
vagyis kialakul egy
olyan holtpont hogy
mindkettő a másikra vár.
<br>
</div>
<b>A kliens az utolsó bájt
átküldése után hogy
jelezze azt hogy nincs
több küldendő adat ?</b>
A neten erre azt a választ
találtam hogy a kliens egy
close()-zal zárja le az
outputstream-et, csakhogy
akkor nincs több
kommunikáció, tehát ez nem
jó megoldás.<br>
<br>
</div>
<div>Addig persze nekem is
jó volt a mintapéldám amíg
magasabb szintű
DataOutputStream-mel
bohóckodtam, és readUTF(),
writeUTF()-fel
küldözgettem az adatokat,
de most kizárólag natúr
InputStream,
OutputStream-met szeretnék
használni mindenféle
varázslat nélkül. <br>
</div>
<div><br>
</div>
Joe <br>
<div>
<div>
<div>
<div><br>
</div>
</div>
</div>
</div>
</div>
<div>
<div>
<div class="gmail_extra"><br>
<div class="gmail_quote">2016.
január 16. 10:32
Zsombor írta, <span
dir="ltr"><<a
moz-do-not-send="true"
href="mailto:gzsombor@gmail.com" target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:gzsombor@gmail.com">gzsombor@gmail.com</a></a>></span>:<br>
<blockquote
class="gmail_quote"
style="margin:0 0 0
.8ex;border-left:1px
#ccc
solid;padding-left:1ex">
<div dir="ltr">Ha az
egyik oldal
lezárja a
socket-et, akkor
az a másik oldalon
is lezárul - a
távolságtól
függően pár
milliszekundum
múlva. Ettől
függetlenül, ha
csak nem zárja le
a ServerSocket-et
a szerver,
ugyanúgy tud újra
kapcsolódni a
kliens. <br>
</div>
<div>
<div>
<div
class="gmail_extra"><br>
<div
class="gmail_quote">2016-01-15
13:17
GMT+01:00
Dénes
Medzihradszky
<span
dir="ltr"><<a
moz-do-not-send="true" href="mailto:medzihradszky.denes@gmail.com"
target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:medzihradszky.denes@gmail.com">medzihradszky.denes@gmail.com</a></a>></span>:<br>
<blockquote
class="gmail_quote"
style="margin:0
0 0
.8ex;border-left:1px
#ccc
solid;padding-left:1ex">
<div dir="ltr">
<div
class="gmail_default"
style="font-family:arial,helvetica,sans-serif">Üdv a listának!<br>
<br>
Nincs itt
valami
félreértés? <br>
A kliens
socket nem
zárható le a
szerver által,
a szerver max
a saját
socketjét
zárhatja le -
amit pl a
ServerSocket-től
kap - hiszen a
kliens
tipikusan egy
másik JVM-ben
fut.<br>
</div>
<div
class="gmail_default"
style="font-family:arial,helvetica,sans-serif">Inkább arról van szó,
hogy a szerver
oldali socket
lezárásával a
kliens már nem
tud ismételten
kapcsolódni.<br>
</div>
<div
class="gmail_default"
style="font-family:arial,helvetica,sans-serif">Oktatóprogramjaimban itt
végtelen
ciklusok
pörögnek,
és/vagy a
ServerSocket
kapcsolódáskor
- accept() -
külön szálat
indít a
létrejött
socket
objektummal.<span><font
color="#888888"><br>
<br>
<br>
</font></span></div>
<span><font
color="#888888">
<div
class="gmail_default"
style="font-family:arial,helvetica,sans-serif">Dénes<br>
</div>
</font></span>
<div>
<div>
<div
class="gmail_extra"><br>
<div
class="gmail_quote">2016-01-15
12:48
GMT+01:00
József
Keresztes <span
dir="ltr"><<a
moz-do-not-send="true" href="mailto:xesj.hu@gmail.com" target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:xesj.hu@gmail.com">xesj.hu@gmail.com</a></a>></span>:<br>
<blockquote
class="gmail_quote"
style="margin:0
0 0
.8ex;border-left:1px
#ccc
solid;padding-left:1ex">
<div dir="ltr">
<div>Azt
hiszem közben
megoldódott. A
szerver
oldalon
lehetett a
hiba, ugyanis:<br>
<br>
Socket socket
=
serverSocket.accept();<br>
...<br>
</div>
// input
olvasás,
output írás <br>
<div>...<br>
</div>
<div>socket.close();<br>
<br>
</div>
<div>és ez
utóbbi miatt a
kliens
socketet a
szerver zárta
le, így a
kliens már nem
tudott több
kommunikációt
kezdeményezni.<br>
</div>
<div>Valszeg a
kliens és
szerver kzötti
kommunikációt
kell
egyeztetni
(egy protokolt
kitalálni)
mikor és ki
zárja le a
kapcsolatot.<br>
</div>
<div>Köszönöm
a netty
ötletet, de
engem most
pont a low
level szint
érdekel.<br>
<br>
</div>
<div>Joe<br>
</div>
<div><br>
</div>
</div>
<div>
<div>
<div
class="gmail_extra"><br>
<div
class="gmail_quote">2016.
január 15.
12:34 László
Magyar írta, <span
dir="ltr"><<a
moz-do-not-send="true" href="mailto:magyarl05@gmail.com" target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:magyarl05@gmail.com">magyarl05@gmail.com</a></a>></span>:<br>
<blockquote
class="gmail_quote"
style="margin:0
0 0
.8ex;border-left:1px
#ccc
solid;padding-left:1ex">
<div dir="ltr">Üdv,
<div><br>
</div>
<div>Ajánlanám
TCP és egyéb
I/O
kommunikációra
a <a
moz-do-not-send="true"
href="http://netty.io/" target="_blank">netty</a> projektet, ami a "low
level"
dolgokat
elintézi.</div>
<div><br>
</div>
<div><br>
<div
class="gmail_extra"><br>
<div
class="gmail_quote">
<div>
<div>2016.
január 15.
12:27 József
Keresztes
írta, <span
dir="ltr"><<a
moz-do-not-send="true" href="mailto:xesj.hu@gmail.com" target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:xesj.hu@gmail.com">xesj.hu@gmail.com</a></a>></span>:<br>
</div>
</div>
<blockquote
class="gmail_quote"
style="margin:0
0 0
.8ex;border-left:1px
#ccc
solid;padding-left:1ex">
<div>
<div>
<div dir="ltr">
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>Sziasztok
!<br>
<br>
</div>
A neten
keresgéltem,
de nem
találtam a
problémára
megoldást.<br>
</div>
A lényeg hogy
TCP-s
kommunikációt
szeretnék egy
szerverrel.<br>
</div>
A kliensben
létrehozok egy
Socket
objektumot, és
ezzel a
socket-tel
akarok<br>
</div>
több
kérést(választ)
csinálni.
Tehát csak
egyszer akarom
a Socket-et
létrehozni,<br>
</div>
majd ezen a
csatornán
írnék az
outputstream-be,
és olvasnám az
inputstream-et,<br>
</div>
majd ismét
írnék az
outputstream-be,
és olvasnám az
inputstream-et...stb.<br>
<br>
</div>
A neten csak
olyan példát
láttam hogy a
kliens egy
kérés-válasz
után lezártja
a socket-et.<br>
</div>
Ha akar
valamit újra
létrehozza.
Nekem ez
kicsit furcsa,
igaz méréseim
szerint a
gépemen egy
socket 10-20
ms alatt
létrejön, de
miért kellene
minden egyes
kérésnél újra
létrehozni ?<br>
<br>
</div>
Java-tól
függetlenül:
én eddig úgy
gondoltam ha
pl. egy
adatbázishoz
be vagyok
jelentkezve
egy klienssel,
és percenként
küldöm el az
SQL-parancsaimat,
akkor nem
kezdi el
mindig
felépíteni
nulláról a
kapcsolatot az
adatbázissal.<br>
<br>
</div>
Joe<br>
</div>
<br>
</div>
</div>
_______________________________________________<br>
Javalist
mailing list<br>
<a
moz-do-not-send="true"
href="mailto:Javalist@lists.javaforum.hu" target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:Javalist@lists.javaforum.hu">Javalist@lists.javaforum.hu</a></a><br>
<a
moz-do-not-send="true"
href="http://lists.javaforum.hu/mailman/listinfo/javalist"
rel="noreferrer"
target="_blank"><a class="moz-txt-link-freetext" href="http://lists.javaforum.hu/mailman/listinfo/javalist">http://lists.javaforum.hu/mailman/listinfo/javalist</a></a><br>
<br>
</blockquote>
</div>
<br>
</div>
</div>
</div>
<br>
_______________________________________________<br>
Javalist
mailing list<br>
<a
moz-do-not-send="true"
href="mailto:Javalist@lists.javaforum.hu" target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:Javalist@lists.javaforum.hu">Javalist@lists.javaforum.hu</a></a><br>
<a
moz-do-not-send="true"
href="http://lists.javaforum.hu/mailman/listinfo/javalist"
rel="noreferrer"
target="_blank"><a class="moz-txt-link-freetext" href="http://lists.javaforum.hu/mailman/listinfo/javalist">http://lists.javaforum.hu/mailman/listinfo/javalist</a></a><br>
<br>
</blockquote>
</div>
<br>
</div>
</div>
</div>
<br>
_______________________________________________<br>
Javalist
mailing list<br>
<a
moz-do-not-send="true"
href="mailto:Javalist@lists.javaforum.hu" target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:Javalist@lists.javaforum.hu">Javalist@lists.javaforum.hu</a></a><br>
<a
moz-do-not-send="true"
href="http://lists.javaforum.hu/mailman/listinfo/javalist"
rel="noreferrer"
target="_blank"><a class="moz-txt-link-freetext" href="http://lists.javaforum.hu/mailman/listinfo/javalist">http://lists.javaforum.hu/mailman/listinfo/javalist</a></a><br>
<br>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</div>
<br>
_______________________________________________<br>
Javalist
mailing list<br>
<a
moz-do-not-send="true"
href="mailto:Javalist@lists.javaforum.hu" target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:Javalist@lists.javaforum.hu">Javalist@lists.javaforum.hu</a></a><br>
<a
moz-do-not-send="true"
href="http://lists.javaforum.hu/mailman/listinfo/javalist"
rel="noreferrer"
target="_blank"><a class="moz-txt-link-freetext" href="http://lists.javaforum.hu/mailman/listinfo/javalist">http://lists.javaforum.hu/mailman/listinfo/javalist</a></a><br>
<br>
</blockquote>
</div>
<br>
</div>
</div>
</div>
<br>
_______________________________________________<br>
Javalist mailing
list<br>
<a
moz-do-not-send="true"
href="mailto:Javalist@lists.javaforum.hu" target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:Javalist@lists.javaforum.hu">Javalist@lists.javaforum.hu</a></a><br>
<a
moz-do-not-send="true"
href="http://lists.javaforum.hu/mailman/listinfo/javalist"
rel="noreferrer"
target="_blank"><a class="moz-txt-link-freetext" href="http://lists.javaforum.hu/mailman/listinfo/javalist">http://lists.javaforum.hu/mailman/listinfo/javalist</a></a><br>
<br>
</blockquote>
</div>
<br>
</div>
</div>
</div>
<br>
_______________________________________________<br>
Javalist mailing list<br>
<a moz-do-not-send="true"
href="mailto:Javalist@lists.javaforum.hu"
target="_blank">Javalist@lists.javaforum.hu</a><br>
<a moz-do-not-send="true"
href="http://lists.javaforum.hu/mailman/listinfo/javalist"
rel="noreferrer"
target="_blank">http://lists.javaforum.hu/mailman/listinfo/javalist</a><br>
<br>
</blockquote>
</div>
<br>
</div>
</div>
</div>
<br>
_______________________________________________<br>
Javalist mailing list<br>
<a moz-do-not-send="true"
href="mailto:Javalist@lists.javaforum.hu"
target="_blank">Javalist@lists.javaforum.hu</a><br>
<a moz-do-not-send="true"
href="http://lists.javaforum.hu/mailman/listinfo/javalist"
rel="noreferrer" target="_blank">http://lists.javaforum.hu/mailman/listinfo/javalist</a><br>
<br>
</blockquote>
</div>
</div>
</div>
<br>
</div>
<br>
_______________________________________________<br>
Javalist mailing list<br>
<a moz-do-not-send="true"
href="mailto:Javalist@lists.javaforum.hu"
target="_blank">Javalist@lists.javaforum.hu</a><br>
<a moz-do-not-send="true"
href="http://lists.javaforum.hu/mailman/listinfo/javalist"
rel="noreferrer" target="_blank">http://lists.javaforum.hu/mailman/listinfo/javalist</a><br>
<br>
</blockquote>
</div>
<br>
</div>
</div>
</div>
<br>
_______________________________________________<br>
Javalist mailing list<br>
<a moz-do-not-send="true"
href="mailto:Javalist@lists.javaforum.hu">Javalist@lists.javaforum.hu</a><br>
<a moz-do-not-send="true"
href="http://lists.javaforum.hu/mailman/listinfo/javalist"
rel="noreferrer" target="_blank">http://lists.javaforum.hu/mailman/listinfo/javalist</a><br>
<br>
</blockquote>
</div>
<br>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
Javalist mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Javalist@lists.javaforum.hu">Javalist@lists.javaforum.hu</a>
<a class="moz-txt-link-freetext" href="http://lists.javaforum.hu/mailman/listinfo/javalist">http://lists.javaforum.hu/mailman/listinfo/javalist</a>
</pre>
</blockquote>
<br>
</body>
</html>