Witam. Piszę aplikację klient serwer i mam pewien problem. Mianowicie chcę aby serwer wywoływał różne metody w zależności od tego co prześle mu klient. Mam coś takiego:
Klient:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
String text = JOptionPane.showInputDialog(null, "Wprowadz nazwe grupy: ");
int port = 5500;
String adresip = "127.0.0.1";
try {
InetAddress servAddr = InetAddress.getByName(adresip);
String data = text;
byte buf[] = data.getBytes();
DatagramSocket socket = new DatagramSocket();
DatagramPacket packet = new DatagramPacket(buf, buf.length, servAddr, port);
socket.send(packet);
JOptionPane.showMessageDialog(null, "Wysłano do " + adresip + " nazwę " + text);
}
catch(Exception ex) {
JOptionPane.showMessageDialog(null, "Błąd");
}
}
Serwer:
private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {
int port = 5500;
try {
DatagramSocket socket = new DatagramSocket(port);
while(true) {
byte buf[] = new byte[100];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
socket.receive(packet);
JOptionPane.showMessageDialog(null, "Odebrano nazwę " + new String(packet.getData()).trim());
}
}
catch(Exception ex) {
JOptionPane.showMessageDialog(null, "Błąd");
}
}
I ok przesyłanie działa dobrze. Klient wysyła, serwer odbiera. Jednak chciałbym aby klient wysyłał powiedzmy id polecenia do serwera, który odbierze to id i wykona odpowiednią rzecz. Jednak nie wiem jak to zrobić? Logiczne wydaje mi się byłoby wysłanie tego id w buforze. Tylko nie wiem jak je zapisać? Np. te id to zwykłe numerki poleceń 1, 2 itd. Tylko jak je umieścić w buforze? Tak żeby niespecjalnie kolidowało z tekstem jaki przesyłam? Mam jeszcze drugie pytanie. Co jeśli chciałbym przesłać cały obiekt?
Obiekt data = obiekt;
byte buf[] = data.getBytes();
Jednak to nie działa dla obiektów tak jak dal Stringów. Jak przesłać cały obiekt?