Torna indietro   Hardware Upgrade Forum > Software > Programmazione

L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
La parola d'ordine al Nextcloud Summit 2026, che si è tenuto a Monaco, è stata "sovranità". Non come è spesso usato questo termine in politica ma, al contrario, come capacità positiva di decidere il proprio destino tecnologico, con modalità collaborative e aperte. L'Europa dice già molto nel mondo open source, che viene visto come mezzo per ottenere la tanto agognata autonomia digitale
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete implementa due bracci estensibili, per spazzola e moccio, che si spingono ben oltre quanto visto sino ad oggi permettendo una pulizia di casa ancor più capillare e precisa
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati
La tecnologia SQD-Mini LED di TCL arriva sul taglio da 65 pollici con la serie C8L: 2040 zone, pannello WHVA 2.0 e un picco che alle rilevazioni delle sonde tocca i 4400 nit nel profilo Filmmaker e un HDR quasi perfetto
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-08-2007, 11:32   #1
antoniod82
Member
 
Iscritto dal: Jun 2006
Città: Salerno
Messaggi: 238
[java] client/server

il seguente pezzo di codice mette il lato server di un' applicazione di rete in attesa della connessione da parte di un client

import java.net.*;
import java.io.*;
...
...
....

try{
servSck=new ServerSocket(porta);
while(true) {
auxSck=servSck.accept();
isServ=auxSck.getInputStream();
disServ=new DataInputStream(isServ);
i=disServ.readInt(); //Legge un oggetto Integer
i=i*i;
osServ=auxSck.getOutputStream();
dosServ=new DataOutputStream(osServ);
dosServ.writeInt(i); //Scrive un oggetto Integer
dosServ.close();
disServ.close();
auxSck.close();
}
} catch(IOException x){}


dal lato client voglio determinare lo stato del server (in attesa di connessione/NN) prima ancora di provare a connettermi:
avevo pensato di utilizzare il metodo isBound()

andrebbe bene? andrebbe messo nell'implementazione del client o server??

grazie,
Antonio
antoniod82 è offline   Rispondi citando il messaggio o parte di esso
Old 20-08-2007, 10:38   #2
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da antoniod82 Guarda i messaggi
dal lato client voglio determinare lo stato del server (in attesa di connessione/NN) prima ancora di provare a connettermi:
avevo pensato di utilizzare il metodo isBound()

andrebbe bene? andrebbe messo nell'implementazione del client o server??
No, le cose stanno in un modo un po' diverso. Quando un socket 'client' cerca di connettersi ad un socket 'server', inizialmente è in uno stato di "half-open". Solo quando il server accetta la connessione (accept) allora diventa full-open. La domanda che ci si può porre è: cosa succede se il client cerca di connettersi in un momento in cui il server non è in grado di accettare connessioni (perché magari non sta facendo una accept(), ad esempio se si usa un server "iterativo" e non "concorrente")???

Semplice: c'è una coda che mantiene in attesa al massimo N connessioni half-open. Viene chiamato backlog, vedi il costruttore di SocketServer:

public ServerSocket(int port, int backlog)

The maximum queue length for incoming connection indications (a request to connect) is set to the backlog parameter. If a connection indication arrives when the queue is full, the connection is refused.

A questo punto la successiva domanda che ci si può fare è: posso sapere se il socket client è half-open?? Leggendo la documentazione e in base alle mie (limitate) conoscenze sul networking in Java, direi di no. isBound() ti dice solamente se il socket è attaccato ad una porta locale ed esserlo è indispensabile per poter cercare di fare una connessione sul server. Per dirla in altri termini: isBound non ti dice se il client è connesso al server ma solo se il socket è attaccato ad una porta locale per poter poi "uscire" sulla rete.
isConnected() ti dice se il socket client è connesso ad un server. E se non sbaglio è 'true' anche solo se la connessione è half-open.
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 23-08-2007, 20:19   #3
antoniod82
Member
 
Iscritto dal: Jun 2006
Città: Salerno
Messaggi: 238
caro andbin,

innanzitutto ti ringrazio per i tui precisi e puntuali suggerimenti, ho avuto modo di visitare il tuo sito, ricco di codice e molto ben fatto.

se hai un pò di tempo, potresti aiutarmi per un ulteriore dubbio riguardante il topic?
http://www.hwupgrade.it/forum/showth...8#post18375388

grazie,
Antonio

Ultima modifica di antoniod82 : 23-08-2007 alle 20:22.
antoniod82 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026 L'Europa conta nella tecnologia e può ess...
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più Dreame X60 Pro Ultra Complete: i bracci si esten...
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati TCL 65C8L, la recensione del SQD-Mini LED da 440...
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro MSI Maestro 500 Wireless: ANC e 90 ore di autono...
NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine NL-LC1 è il primo dissipatore a liquido A...
Dopo gli unicorni, arrivano i "soon...
Europei sempre più diffidenti ver...
L'acquisto di Steam Machine è un ...
Lenovo Prime Day: i 6 migliori sconti (a...
CATL non riesce a superare la fase proto...
Mythos, il caso si complica: causa contr...
Il pazzesco nuovo record di Xiaomi YU7 G...
OneXPlayer 3: un PC gaming in formato Ni...
Climate.us riporta online i 15 anni di C...
Hisense da 58 pollici sotto i 300€ fa tr...
Windows 11 26H2: cosa cambia e chi resta...
SpaceX ha lanciato la sua prima capsula ...
Il prezzo medio di vendita degli smartph...
Prime Day robot tagliaerba: MAMMOTION, D...
Recensione Google Home Speaker: Gemini s...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 21:13.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v