Il codice è ok. Forse per quello che devi fare tu basta un che di più minimale:
Codice:
package sockets;
import java.io.PrintStream;
import java.net.Socket;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Throwable {
Socket socket = null;
try {//questo serve perchè se dopo aver aperto il socket qualcosa va a
//schifìo bisogna comunque chiudere la connessione
socket = new Socket("mio.server.it", 1234);
PrintStream out = new PrintStream(socket.getOutputStream());//out scrive
Scanner in = new Scanner(socket.getInputStream());//in legge
out.print("user IZ6SZA pass 11111 vers testsoftware");
out.flush();
String risposta = in.nextLine();
} finally {//qui ci entriamo anche se prima è passato godzilla
if(socket != null) socket.close();
}
}
}
Poi bisogna vedere chi è che riceve. Ad esempio alcuni protocolli richiedono che le stringhe sia terminate da interruzioni di linea, a volte doppie. A quel punto non basta dire:
out.print("pippo")
ma bisogna dire:
out.print("pippo\r\n");//interruzione singola
oppure
out.print("pippo\r\n\r\n");//interruzione doppia.
Dipende dal protocollo del servizio a cui vuoi accedere.