🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.java
Article #153702

Re: Java i automatyczne wznawianie połączenia klienckiego socket

#153702
From: Artik
Date: Mon, 10 Dec 2012 06:00
53 lines
4147 bytes
Rozumiem, zrewidowałem swoje podejscie i teraz mam przykład kodu jak poniżej:
                thrd3 = new Thread(new Runnable() {
                    @Override
                    public void run() {
                        Socket sock = null;
                        BufferedWriter out = null;
                        while (true) {
//chwila odpoczynku dla systemu
                            try {
                                Thread.sleep(1000);
                            } catch (InterruptedException e2) {
                                Thread.currentThread().interrupt();
                            }
//proba wyslania gdy socket ustawiony (1 proba nie zostanie podjeta - socket jeszcze nie ustawiony)
                            if (sock != null) {
                                try {
                                    out.write("TEST DATA\n");
                                    out.flush();
                                } catch (IOException e) {
//w przypadku bledu zamkniecie Socketa i BufferedWritera
                                    // ERROR-----------------------
                                    try {
                                        out.close();
                                        sock.close();
                                        sock = null;
                                    } catch (IOException e1) {
                                        sock = null;
                                        out = null;
                                    }
                                }
                            } else
// jesli socket==null proba inicjowania lub reinicjowania polaczenia 
                            {
                                try {
                                    sock = new Socket();
                                    sock.connect(new InetSocketAddress(address,
                                            5000), 1000);
                                    out = new BufferedWriter(
                                            new OutputStreamWriter(sock
                                                    .getOutputStream()));
                                } catch (IOException e1) {
                                    sock = null;
                                }
                            }
                        }
                    }
                });
                thrd3.start();

Ale dalej wystepuje problem kilku "uderzeń" inicjujących połączenie od klienta do serwera po włączeniu tego drugiego (im dłużej serwer jest niedostępny tym jest ich więcej). Nie rozumiem tego - myslę, że kiedy klient probuje sie polączyć i mu to nie wychodzi, podchodzi do kolejnej proby a wszystkie poprzednie "umierają"). Teraz to wygląda tak jakby oczekiwały one w tle. Nie wiem czy wyrażam wystarczająco przejrzyście, nie jestem z wykształcenia informatykiem.

Pozdrawiam
Artik
Technical Details
Message-ID: <d52e0447-3670-42cd-9c18-6d9526cc6cd8@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!newsfeed.pionier.net.pl!news.glorb.com!c8no2290214qao.0!news-out.google.com!gf5ni48613681qab.0!nntp.google.com!c8no2290205qao.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
References: <8da568b8-c14e-42d2-97a4-e872c6eb8675@googlegroups.com> <ka2gnr$dhh$1@news.dialog.net.pl> <67bb49ad-8a4b-4ce4-8596-2ab2c29c8522@googlegroups.com> <ka32ma$m1l$1@news.dialog.net.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!newsfeed.pionier.net.pl!news.glorb.com!c8no2290214qao.0!news-out.google.com!gf5ni48613681qab.0!nntp.google.com!c8no2290205qao.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.lang.java
Date: Sun, 9 Dec 2012 22:00:58 -0800 (PST)
In-Reply-To: <ka32ma$m1l$1@news.dialog.net.pl>
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=88.156.28.232; posting-account=FYIyEAoAAAANuhVTqhCgp1nBx7dpZ-nl
NNTP-Posting-Host: 88.156.28.232
References: <8da568b8-c14e-42d2-97a4-e872c6eb8675@googlegroups.com> <ka2gnr$dhh$1@news.dialog.net.pl> <67bb49ad-8a4b-4ce4-8596-2ab2c29c8522@googlegroups.com> <ka32ma$m1l$1@news.dialog.net.pl>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <d52e0447-3670-42cd-9c18-6d9526cc6cd8@googlegroups.com>
Subject: Re: Java i automatyczne wznawianie połączenia
 klienckiego socket
From: Artik <olsztyn.arti@gmail.com>
Injection-Date: Mon, 10 Dec 2012 06:00:58 +0000
Lines: 62
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit