Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
In occasione del proprio Architecture Deep Dive 2025 Qualcomm ha mostrato in dettaglio l'architettura della propria prossima generazione di SoC destinati ai notebook Windows for ARM di prossima generazione. Snapdragon X2 Elite si candida, con sistemi in commercio nella prima metà del 2026, a portare nuove soluzioni nel mondo dei notebook sottili con grande autonomia
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
DJI Mini 5 Pro porta nella serie Mini il primo sensore CMOS da 1 pollice, unendo qualità d'immagine professionale alla portabilità estrema tipica di tutti i prodotti della famiglia. È un drone C0, quindi in un peso estremamente contenuto e che non richiede patentino, propone un gimbal rotabile a 225 gradi, rilevamento ostacoli anche notturno e autonomia fino a 36 minuti. Caratteristiche che rendono il nuovo drone un riferimento per creator e appassionati
ASUS Expertbook PM3: il notebook robusto per le aziende
ASUS Expertbook PM3: il notebook robusto per le aziende
Pensato per le necessità del pubblico d'azienda, ASUS Expertbook PM3 abbina uno chassis particolrmente robusto ad un pannello da 16 pollici di diagonale che avantaggia la produttività personale. Sotto la scocca troviamo un processore AMD Ryzen AI 7 350, che grazie alla certificazione Copilot+ PC permette di sfruttare al meglio l'accelerazione degli ambiti di intelligenza artificiale
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-11-2007, 10:17   #1
ally
Bannato
 
L'Avatar di ally
 
Iscritto dal: Jan 2003
Città:
Messaggi: 4421
...Java SocketServer...

...ciao...

...ho "rubato" un esempio di socket server da un noto programmatore italiano...ho adattato il codice alle mie esigenze e l'ho aggiunto ad un precedente programma in modo da poter monitorare tramite lan il funzionamento delle stesse...ho scelto come porta di comunicazione la 12000...la connessione verso il server avviene senza problemi ma le risposte che questo dovrebbe ritornare non vengono inoltrate...

Codice:
public class SocketServer {
	
	int port;
	BufferedReader socketIn = null;
	PrintWriter socketOut = null;
	ServerSocket socketServer = null;
	Socket sock = null;
	SocketAddress socketAddress = null;
	String line = ""; //$NON-NLS-1$
	static Logger AppLogger = Logger.getLogger("AppLogger"); //$NON-NLS-1$
	Player player;
	
	public SocketServer(){
		
		AppLogger.debug(""); //$NON-NLS-1$
	}
	
	public SocketServer(int port){
		
		System.out.println("server start on port : " + port); //$NON-NLS-1$
		
		this.port = port;
	}
	
	public void go(){
		
		new Thread(){
			public void run(){
				
				try{
					SocketServer.this.socketServer = new ServerSocket(SocketServer.this.port);
					SocketServer.this.sock = SocketServer.this.socketServer.accept();
					SocketServer.this.socketAddress = SocketServer.this.sock.getRemoteSocketAddress ();
					System.out.println ("Received connection from " + SocketServer.this.socketAddress); //$NON-NLS-1$
					try{
						SocketServer.this.socketIn = new BufferedReader (new InputStreamReader (SocketServer.this.sock.getInputStream ()));
						SocketServer.this.socketOut = new PrintWriter (SocketServer.this.sock.getOutputStream (), true);
						while ((SocketServer.this.line = SocketServer.this.socketIn.readLine ()) != null)
						{
							if (SocketServer.this.line.equals ("quit")) //$NON-NLS-1$
								break;
							request(SocketServer.this.line);
						}
					}
					finally
					{
						if (SocketServer.this.socketIn != null)
							SocketServer.this.socketIn.close ();
						if (SocketServer.this.socketOut != null)
							SocketServer.this.socketOut.close ();
						SocketServer.this.sock.close ();
					}
				}
				catch (Exception e)
				{
					AppLogger.debug(e.getMessage ());
				}
			}
			
		}.start();
		
	}
	
	public void setPlayer(Player player){
		
		this.player = player;
	}
	
	public void request(String request){
		
		if(request.equals("recent")) //$NON-NLS-1$
			this.socketOut.println(this.player.getRecentBarcode());
		else if(request.equals("cycle")) //$NON-NLS-1$
			this.socketOut.println("global cycle : "+this.player.isPlayer()+" audio cycle : "+this.player.isAudio()+" video cycle : "+this.player.isVideo()+" idle cycle : "+this.player.isIdle());  //$NON-NLS-1$ //$NON-NLS-2$//$NON-NLS-3$ //$NON-NLS-4$
		else if(request.equals("timer")) //$NON-NLS-1$
			this.socketOut.println("idle counter : "+this.player.getCounter()/10+" of "+this.player.getGlobalVariables().getIdleInterval()/10+" restart counter : "+this.player.getRestartTime()*3+" of "+this.player.getGlobalVariables().getClientManagerRestart()*3); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
		else if(request.equals("error")) //$NON-NLS-1$
			this.socketOut.println("file error : "+this.player.getFileError()+" db error : "+this.player.getDbError()+" freezed screen : "+this.player.getFreezedScreen() ); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
		else if(request.equals("mplayer")) //$NON-NLS-1$
			this.socketOut.println("mplayer running : "+Mplayer.getInstance().IsPlaying()+" playlist :  "+Mplayer.getInstance().getPlaylist());  //$NON-NLS-1$//$NON-NLS-2$
		else if(request.indexOf("execute")>-1) //$NON-NLS-1$
		{	
			this.player.serverRequest(request.substring(6,request.length()));
			this.socketOut.println(request+" sent"); //$NON-NLS-1$
		}
		this.socketOut.println(request);
		
	}
}
...qualche idea?...anche su chi sia questo noto programmatore italiano?...eh eh...

...ciao...
ally è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2007, 15:46   #2
ally
Bannato
 
L'Avatar di ally
 
Iscritto dal: Jan 2003
Città:
Messaggi: 4421
...ancora problemi con questo socket server...ho ripulito un po' il codice...il mio problema maggiore è di mantenere il server su dopo la disconnessione del client...al log out del client infatti il server termina...

Codice:
public class ServerEvo {
	
	int port = 12000;
	BufferedReader socketIn = null;
	PrintWriter socketOut = null;
	ServerSocket socketServer = null;
	Socket sock = null;
	SocketAddress socketAddress = null;
	String line = ""; //$NON-NLS-1$
	
	public ServerEvo(int port){
		
		System.out.println("server start on port : " + port); //$NON-NLS-1$
		try{
			this.port = port;
		    this.socketServer = new ServerSocket (this.port);
		    this.sock = this.socketServer.accept ();
		}catch(Exception e){
			System.out.println(e);
		}
		
		go();
	}
	
	public void go(){
		
		new Thread(){
			public void run(){
				try{
		            socketAddress = sock.getRemoteSocketAddress ();
		            System.out.println ("Received connection from " + socketAddress);
		            try{
		            	socketIn = new BufferedReader (new InputStreamReader (sock.getInputStream ()));
		            	socketOut = new PrintWriter (sock.getOutputStream (), true);
		                 while ((line = socketIn.readLine ()) != null)
		                {
		                    System.out.println ("Received from " + socketAddress + " string \"" + line + "\"");
		                    socketOut.println(line);
		                    if (line.equals ("quit"))
		                        break;
		                }
		            }
		            finally
		            {
		                System.out.println ("Disconnection from " + socketAddress);
		                if (socketIn != null)
		                    socketIn.close ();
		                if (socketOut != null)
		                    socketOut.close ();
		                sock.close ();
		            }
		        }
		        catch (Exception e)
		        {
		            System.out.println (e.getMessage ());
		        }
			}
			
		}.start();
		
	}
	
	public static void main(String args[]){
		
		new ServerEvo(12000);
		
	}
}
...il codice di Andbin da cui ho preso spunto è composto di due parti principali...il socketSrverRunnable che ho replicato nel metodo go annegando il thread...

Codice:
public class SocketServerRunnable implements Runnable{
	
    private Socket sock;

    public SocketServerRunnable (Socket sock){
    	
        this.sock = sock;
    }

    public void run(){
    	
        try{
            BufferedReader socketIn = null;
            PrintWriter socketOut = null;
            SocketAddress socketAddress = sock.getRemoteSocketAddress ();
            System.out.println ("Received connection from " + socketAddress);
            try{
            	socketIn = new BufferedReader (new InputStreamReader (sock.getInputStream ()));
            	socketOut = new PrintWriter (sock.getOutputStream (), true);
                String line;
                while ((line = socketIn.readLine ()) != null)
                {
                    System.out.println ("Received from " + socketAddress + " string \"" + line + "\"");
                    socketOut.println(line);
                    if (line.equals ("quit"))
                        break;
                }
            }
            finally
            {
                System.out.println ("Disconnection from " + socketAddress);
                if (socketIn != null)
                    socketIn.close ();
                if (socketOut != null)
                    socketOut.close ();
                sock.close ();
            }
        }
        catch (Exception e)
        {
            System.out.println (e.getMessage ());
        }
    }
}
...e il SocketServer...il ciclo while di quest'ultimo è responsabile di mantenere up il server anche dopo le disconessioni dei client...la mia idea era pero' di mantenere il server slegato dal resto del programma...dovrei quindi eliminare il ciclo while o isolarlo dal funzionamento del programma principale...

Codice:
public class SocketServer{
	
    private ServerSocket socketServer;

    public SocketServer(int port)throws IOException{
    	
        socketServer = new ServerSocket (port);
        start();
        
    }

    public void start() throws IOException {
    	
        Thread thread;
        SocketServerRunnable socketServerRunnable;

        System.out.println ("SocketSample1 Server started");

        try {
            while (true)
            {
                Socket socket = socketServer.accept ();
                socketServerRunnable = new SocketServerRunnable(socket);
                thread = new Thread (socketServerRunnable);
                thread.start ();
            }
        }
        finally
        {
            System.out.println ("SocketSample1 Server terminated");
            socketServer.close();
        }
    }
}
...grazie...ciao...
ally è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026 Qualcomm Snapdragon X2 Elite: l'architettura del...
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice Recensione DJI Mini 5 Pro: il drone C0 ultra-leg...
ASUS Expertbook PM3: il notebook robusto per le aziende ASUS Expertbook PM3: il notebook robusto per le ...
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo Test ride con Gowow Ori: elettrico e off-road va...
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design   Recensione OnePlus 15: potenza da vendere e batt...
PS5 in super offerta per il Black Friday...
USA, export di chip AI: Casa Bianca cont...
FSR 4 su Radeon RX 7000, 6000 e 5000? Ci...
3 iPad Pro con chip M4 scontati di oltre...
HONOR Magic 8 Pro: svelata la data di la...
5G: entra in vigore il sistema AGCOM dei...
Bonus Elettrodomestici 2025, grande succ...
NVIDIA mette a tacere i timori della bol...
Col Black Friday partono anche gli scont...
I ribassi più pesanti del vero Bl...
Settimana del Black Friday: pioggia di s...
Speciale Blay Friday Dyson, sconti mai v...
I portatili più scontati del Blac...
WiFi al massimo: gli ASUS più pot...
Domotica in super sconto: tado° e Ne...
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: 08:42.


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