Server og Klient
HejsaArbejde i jBuilder 2005.
Jeg er ved at lave et server program og en klient del.
Serveren.
Server Delel:
package server;
import java.net.ServerSocket;
import java.net.*;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.PrintWriter;
class Server {
public static void main(String[] args) {
ServerSocket minserver = null;
try {
minserver = new ServerSocket(3333);
System.out.println("Port Nummer" + ":" + minserver);
}
catch (IOException e) {
System.out.println("Could not listen on port: 3333");
System.exit(-1);
}
Socket clientSocket = null;
try {
clientSocket = minserver.accept();
}
catch (IOException e) {
System.out.println("Accept failed: 3333");
}
PrintWriter out = null;
try {
out = new PrintWriter(clientSocket.getOutputStream(), true);
}
catch (IOException ex1) {
}
BufferedReader in = null;
try {
in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
}
catch (IOException ex2) {
}
String inputLine, outputLine;
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
try {
while ( (inputLine = in.readLine()) != null) {
System.out.println(inputLine);
outputLine = stdIn.readLine();
out.println(outputLine);
if (outputLine.equals("Bye.")) {
break;
}
}
System.out.println("Server Lukker og Slukker");
out.close();
in.close();
stdIn.close();
minserver.close();
}
catch (IOException ex) {
}
}
}
Klient Delen:
package klient;
import java.net.ServerSocket;
import java.net.*;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.PrintWriter;
class Klient {
public static void main(String[] args) {
/**Lokal Maskine IP*/
String localMachineIP = "";
/**Ip Adresen Fra den Locale Maskine Start*/
try
{
java.net.InetAddress localMachine = java.net.InetAddress.getLocalHost();
localMachineIP = localMachine.getHostAddress();
System.out.println("Klient IP: " + localMachineIP);
}
catch(java.net.UnknownHostException uhe)
{
System.out.println("Fejl ved hentning af Local IP");
}
/**Ip Adresen Fra den Locale Maskine Slut*/
/**Opretter og starter JegLever tråd start*/
JegLever JegLever1 = new JegLever();
Thread JegLeverTraad;
JegLeverTraad = new Thread(JegLever1);
JegLeverTraad.start();
/**Opretter og starter JegLever tråd slut*/
/**Opretter og starter klient socket start*/
Klient klient = new Klient();
Socket echoSocket = null;
PrintWriter out = null;
BufferedReader in = null;
/**Opretter og starter klient socket slut*/
try {
echoSocket = new Socket("127.0.0.1", 3333);
out = new PrintWriter(echoSocket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(echoSocket.getInputStream()));
}
catch (UnknownHostException e) {
System.err.println("Kender ikke til Host: " + echoSocket);
}
catch (IOException e) {
System.err.println("Kunne ikke forbinde til : ServerIPadresse på port: " + 3333);
System.err.println("Venter på server...");
}
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
String userInput;
try {
while ( (userInput = stdIn.readLine()) != null) {
out.println(userInput);
System.out.println("SunServer: " + in.readLine());
}
}
catch (IOException ex) {
}
System.out.println("Klient Lukker og Slukker");
out.close();
try {
in.close();
}
catch (IOException ex1) {
}
try {
stdIn.close();
}
catch (IOException ex2) {
}
try {
echoSocket.close();
}
catch (IOException ex3) {
}
}
}
Tråd i Klient:
package klient;
import java.io.PrintWriter;
import java.net.Socket;
import java.io.BufferedReader;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class JegLever implements Runnable{
PrintWriter out = null;
String HoldILive = "hest";
public JegLever() {
try {
jbInit();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
public static void main(String[] args) {
JegLever jeglever = new JegLever();
}
public void run() {
while (true)
{
// out.println(HoldILive);
// System.out.println("SunServer: " + in.readLine());
try {
Thread.sleep(2000);
}
catch (InterruptedException ex) {
}
}
}
private void jbInit() throws Exception {
}
}
Det jeg gerne vil op nå er følgende: At når klienten starter op, skal den automatisk sende en streng feks. "Alive".
Når serverne registrer "Alive", skal serveren sende et svar tilbage, en stregn feks. "OK"
Men når jeg starter klienten op, skal jeg trykke på enter tasten før komunikationen er oprettet.
Nogle der har nogel ider til at hjælpe mig?
