import java.io.*; import java.net.*; // a JAVA halozati csomagja public class TCPClient { public static void main(String[] args) { if (args.length == 2) // 2 argumentum kell, a szerver es a port { try { int port = Integer.parseInt(args[1]); // portszam kiolvasasa InetAddress serveraddr = InetAddress.getByName(args[0]); // Internet cim meghatarozasa nev alapjan Socket sock = new Socket(serveraddr, port); // csatlakozás a szerverhez // ráállítunk egy olvasót a System.in-re, azaz a billentyűzetre BufferedReader be = new BufferedReader(new InputStreamReader(System.in)); OutputStream outstream = sock.getOutputStream(); // kimeno folyam PrintWriter cprnwrite = new PrintWriter(outstream); InputStream instream = sock.getInputStream(); // bejovo folyam BufferedReader cbufread = new BufferedReader(new InputStreamReader(instream)); // bejovo folyam olvaso String line = "";//cbufread.readLine(); while(true) // ez egy végtelen ciklus { if (be.ready()) { // ha van beolvasható szó a billentyűzetről, akkor igaz különben tocább ugrik line = be.readLine(); // egy sor beolvasasa a billentyűzetről cprnwrite.println(line); // a beolvasott szöveg elküldése a szervernek cprnwrite.flush(); // a buffer uritese } if (line.equals("exit")) break; // exit utasításra kilépünk if (cbufread.ready()){ line = cbufread.readLine(); // egy sor fogadása a szervertől System.out.println(line); // a megkapott szöveg kiíratása } if (line.equals("exit")) break; // exit utasításra kilépünk } cbufread.close(); // olvaso, iro es socket lezarasa cprnwrite.close(); sock.close(); } catch (SocketException e) // hibakezeles { System.out.println("Hiba tortent a sockettel!"); } catch (IOException e) { System.out.println("Hiba tortent a kivitelben/bevitelben!"); } catch (NumberFormatException e) { System.out.println("Hiba tortent a portszam meghatarozasakor (nem egesz szam!)"); } } else // ha nem 2 argumentumunk van, akkor kiirjuk a hasznalati utasitast. { System.out.println("Hasznalat: TCPClient szerver_neve port"); } } }