Ciao,vorrei creare un semplice server e un semplice client (per iniziare). Vorrei semplicemente che in base ad una lettera passata dal Client il server risposta con una stringa.
Es.Il client scrive "a" ed il server risponde "Buongiorno"
Ho provato a creare una connessione:
un client:codice:package comunicazione; import java.awt.*; import java.lang.*; import java.io.*; import java.net.*; public class BaseConn { TextArea commandArea, responseArea; Socket socket = null; PrintWriter os = null; BufferedReader is = null; public BaseConn(String host, String port, TextArea commandArea, TextArea responseArea) { this.commandArea = commandArea; this.responseArea = responseArea; try {socket = new Socket(host, Integer.parseInt(port)); os = new PrintWriter(socket.getOutputStream()); is = new BufferedReader(new InputStreamReader(socket.getInputStream())); responseArea.append("***Connection established" + "\n"); } catch (Exception e) { responseArea.append("Exception" + "\n"); } } public void send() { os.println(commandArea.getText()); os.flush(); } public void receive() { String inputLine; try { inputLine = is.readLine(); responseArea.append(inputLine + "\n"); } catch (IOException e) { responseArea.append("IO Exception" + "\n"); } } }
ed un server:codice:package comunicazione; import java.net.*; import java.io.*; public class SimpleClient{ public static void main(String args[]) throws IOException { Socket s1; InputStream s1in; DataInputStream dis; s1=new Socket("192.168.0.2",65000); s1in=s1.getInputStream(); dis=new DataInputStream(s1in); String st=new String(dis.readUTF()); System.out.println(st); dis.close(); s1in.close(); s1.close(); } }
main:codice:package comunicazione; import java.net.*; import java.io.*; public class SimpleServer { public static void main(String args[]) { ServerSocket s=null; Socket s1; String sendString="Buongiorno"; int slength=sendString.length(); OutputStream s1out; DataOutputStream dos; try { s=new ServerSocket(65000); } catch (IOException e) {} while(true) { try { s1=s.accept(); s1out=s1.getOutputStream(); dos=new DataOutputStream(s1out); dos.writeUTF(sendString); dos.close(); s1out.close(); s1.close(); } catch (IOException e) {} } } }
Però mi dice che s1 deve essere inizializzata, ma come?codice:package comunicazione; import java.sql.*; import java.io.*; import java.net.*; import java.util.*; import java.util.Vector; import java.io.BufferedReader.*; public class Main{ public static void main(String[] args){ Socket s1; InputStream s1in; DataInputStream dis; try { BufferedReader in = new BufferedReader( new InputStreamReader( s1.getInputStream())); System.out.println ("digita a"); if(in.readLine().equals("a")){ String sendString="Buongiorno"; } }catch (IOException e) { e.printStackTrace(); } } }
Non va bene la dichiarazione nella classe SimpleClient?
Grazie

Rispondi quotando


