Objekter over netværk via sockets
Jeg har to klasser, en server og en client. Clienten kan fra serveren få den aktuelle dag og tid i en string.Hvis nu jeg kunne tænke mig at sende objekter, eksempelvis en vector indeholdende selvdefineret objekter, over netværket i stedet for, hvilken måde er den bedste at gøre dette på og hvordan får jeg den sat ind i mine programmer.
package daytime;
import java.util.*;
import java.net.*;
import java.io.*;
public class DaytimeClient
{
public static final int SERVICE_PORT = 80;
public static void main(String args[])
{
if(args.length != 1)
{
System.out.println("Syntax - DaytimeClient host");
return;
}
String hostname = args[0];
try
{
Socket daytime = new Socket(hostname, SERVICE_PORT);
System.out.println("Connection established...");
daytime.setSoTimeout(2000);
BufferedReader reader = new BufferedReader(new InputStreamReader(daytime.getInputStream()));
System.out.println("Results: " + reader.readLine());
daytime.close();
}
catch(IOException ioe)
{
System.out.println("Error " + ioe);
}
}
}
package daytime;
import java.util.*;
import java.net.*;
import java.io.*;
public class DaytimeServer
{
public static final int SERVICE_PORT = 80;
public static void main(String args[])
{
try
{
ServerSocket server = new ServerSocket(SERVICE_PORT);
System.out.println("Daytime service started");
for(;;)
{
Socket nextClient = server.accept();
System.out.println("Recieved request from " +
nextClient.getInetAddress() + ":" + nextClient.getPort());
OutputStream out = nextClient.getOutputStream();
PrintStream pout = new PrintStream(out);
pout.print(new java.util.Date());
out.flush();
out.close();
nextClient.close();
}
}
catch(BindException be)
{
System.out.println("Service already running on port " + SERVICE_PORT);
}
catch(IOException ioe)
{
System.out.println("I/O error - " + ioe);
}
}
}
