Iniciante em Java, algumas perguntas

Bom dia para todos! :slight_smile:
Eu programo em C ja a quatro anos, mas estou comecando a estudar Java.
Nao usei C++, por tanto nao tenho muito conhecimento com OO.
Estou aprendendo por enquanto pelo site oficial da Java, com o tutorial deles, que eu achei muito legal, que diferente de alguns livros, tem exemplos interessantes.

Bom, eu tentei escrever um codigo basico usandos sockets, ele funciona, mas eu estou postando ele aqui, para receber alguns comentarios, como: onde eu poderia melhorar ele, o que estou usando de errado, onde OO pode ajudar mais nesse codigo e por ai vai :wink:

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

class httpQuery {
	private Socket sock;
	private String host;
	private BufferedReader in;
	private DataOutputStream out;
	private int port;

	public httpQuery( String host, int port ) {
		this.host = host; this.port = port;
		this.in = null; this.out = null;
		this.sock = null;
	}
	public httpQuery( String host ) {
		this( host, 80 );
	}
	private void Connect() {
		try {
			sock = new Socket( host, port );
			in = new BufferedReader(
						new InputStreamReader( sock.getInputStream() ));
			out = new DataOutputStream( sock.getOutputStream() );
		} catch( UnknownHostException uhe ) {
			System.err.println( uhe.getMessage() );
		} catch( IOException ioe ) {
			System.err.println( ioe.getMessage() );
		}
	}
	private void Disconnect() {
		try {
			sock.close();
			in.close();
			out.close();
		} catch( IOException ioe ) {
			System.err.println( ioe.getMessage() );
		}
	}
	public String getHttpd() {
		String response;

		Connect();
		try {
			out.writeBytes( "HEAD / HTTP/1.0\r\n\r\n" );
			while( (response = in.readLine()) != null )
				if( response.indexOf( "Server:" ) != -1 ) {
					Disconnect();
					return response.substring( 8 );
				}
		} catch( IOException ioe ) {
			System.err.println( ioe.getMessage() );
		}
		Disconnect();
		return "Not Found";
	}
}

public class srvQuery {
	public static void main( String [] Args ) {
		httpQuery test = new httpQuery( "linuxpackages.net", 80 );
		System.out.println( test.getHttpd() );
	}
}

E a segunda pergunta, qual livro que voces recomendam para aprender Java? Eu comprei o livro do Bruce Eckel (Learning Java), so que nao gostei dele, tem exemplos muito basicos, e ele puxa muito os assuntos, se metendo muito em syntax e tal.

Preciso de um livro com exemplos mais reais, e que aborde menos os assuntos basicos.

Obrigado! :wink:
Obs. Otimo site, espero poder contribuir de algum jeito.
Obs2. Estou fascinado com Java, simplesmente facilita tudo.

Cara, bem vindo ao Java…
Também sou novo em Java comecei a 3 meses e um livro que ajuda bastante é o do Deitel cujo nome é “Java como Programar” inclusive existem grupos de discussão aqui no portal Java topico a topico se for do seu interesse!
Uma coisa que ajuda muito aqui no portal é o menu ‘pesquisa’ que são topicos já anteriormente discutidos pelos membros do portal!!
Então antes de postar duvidas de uma pesquisada…que muitos topicos já foram discutidos antes!!

Blz?!

Falou!!

Se vc quer algo mais forte, por que “java como programar” é ótimo, mas é muito enrolão, compre o core java 2, que é avançado, pode ir, se quer algo mais avançado, compre-o!