[Java] Vectors verzenden dmv Sockets.

Pagina: 1
Acties:

  • BolkeBeer
  • Registratie: Mei 2004
  • Laatst online: 05-08-2025

BolkeBeer

Dat is mooi.

Topicstarter
Ik zit met het volgende probleem.

Ik heb 2 programma's, en de ene (client) heeft veel informatie nodig van de andere(server). Die informatie wordt opgeslagen in vectoren en die vectoren worden dan ook weer opgeslagen in een vector.

Nu wil ik de vector met alle informatie in 1 keer naar de client sturen, zodat die al deze info
uit de vector kan halen (ik wil dus de vector van de server naar de client sturen, en deze niet
opbreken in strings).

Hoe doe ik dit?

[ Voor 5% gewijzigd door BolkeBeer op 11-01-2005 14:26 ]

Proud to be vout!


Verwijderd

Ken je de ObjectOutputStream :) En dan wijst Google je wel naar wat uitleg her en der ;)

[ Voor 65% gewijzigd door Verwijderd op 11-01-2005 14:29 ]


  • BolkeBeer
  • Registratie: Mei 2004
  • Laatst online: 05-08-2025

BolkeBeer

Dat is mooi.

Topicstarter
Ik had ObjectStream wel te pakken, maar ik dacht dat dat alleen maar naar een file schrijven was (het opslaan van classes).
Zal dit eens proberen. :) _/-\o_

Maar hoe krijg je deze stream dan als netwerkstream?

Lama, kom der wel uit. In 10 minuten klaar, _/-\o_

[ Voor 27% gewijzigd door BolkeBeer op 11-01-2005 14:37 ]

Proud to be vout!


  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Je realiseert een socket connectie tussen client en server.

Vector (Client) --> ClientSocket (ObjectOutputStream) --> ServerSocket (ObjectInputStream) --> Vector (Server)

Zorg er wel voor dat je ServerSocket de clientconnectie verwacht:
Java:
1
Socket socket = srvSocket.accept();

[ Voor 30% gewijzigd door -FoX- op 11-01-2005 14:33 ]


Verwijderd

BolkeBeer schreef op dinsdag 11 januari 2005 @ 14:30:
Ik had ObjectStream wel te pakken, maar ik dacht dat dat alleen maar naar een file schrijven was (het opslaan van classes).
Zal dit eens proberen. :) _/-\o_
Dan had je toch wat beter moeten zoeken :) Met de voorbeelden moet het lukken!

  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Ach, ben in een goede bui vandaag... :Y)

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import java.io.*;
import java.net.Socket;
import java.net.ServerSocket;
import java.util.Vector;

/**
 * User: -FoX-
 * Date: 11-jan-2005
 */

public class ServerSocketClass {
    private Vector testVector;

    public ServerSocketClass(){
        ServerSocket srvSocket = null;
        try {
            srvSocket = new ServerSocket(1234);
        } catch (IOException e) {
            System.err.println("Could not listen on port: 1234.");
            System.exit(1);
        }

        Socket clientSocket = null;
        try {
            clientSocket = srvSocket.accept();
        } catch (IOException e) {
            System.err.println("Accept failed.");
            System.exit(1);
        }

        ObjectInputStream ois = null;
        try {
            InputStream istream = clientSocket.getInputStream();
            ObjectInputStream os = new ObjectInputStream(istream);
            testVector = (Vector) os.readObject();          
            istream.close();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

        for(int i=0; i<testVector.size(); i++){
            System.out.println("Element "+i+": "+testVector.elementAt(i));
        }
    }

    public static void main(String arg[]){
        new ServerSocketClass();
    }
}


Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import java.util.Vector;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.net.Socket;

/**
 * User: -FoX-
 * Date: 11-jan-2005
 */
public class ClientSocketClass {
    private Vector testVector = new Vector();
    private Socket client;

    public ClientSocketClass() {
        testVector.add(new String("Eén"));
        testVector.add(new String("Twee"));
        testVector.add(new String("Drie"));

        try {
            client = new Socket("localhost",1234);
            OutputStream out = client.getOutputStream();
            ObjectOutputStream oos = new ObjectOutputStream(client.getOutputStream());
            oos.writeObject(testVector);
            oos.flush();
            oos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    public static void main(String[] args) throws IOException {
        ClientSocketClass csc = new ClientSocketClass();
    }
}


Output:
code:
1
2
3
Element 0: Eén
Element 1: Twee
Element 2: Drie


En had overigens nog eens zin om iets met sockets te doen :*)

[ Voor 4% gewijzigd door -FoX- op 11-01-2005 15:03 ]


Verwijderd

-FoX- schreef op dinsdag 11 januari 2005 @ 15:03:
Ach, ben in een goede bui vandaag... :Y)

[snip]

En had overigens nog eens zin om iets met sockets te doen :*)
Ziet er goed uit hoor maar sinds wanneer is voorkauwen het motto van GoT ;)

  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Dit valt onder het motto: Beter goed voorgekauwt dan slecht zelf gemaakt :?

Neh, zoals ik zei had ik gewoon zin om nog es iéts met Sockets te doen.. enja, het dan maken en toch lekker niet posten zou wel sarcastisch zijn :)

  • BolkeBeer
  • Registratie: Mei 2004
  • Laatst online: 05-08-2025

BolkeBeer

Dat is mooi.

Topicstarter
-Fox- super... beetje aanpassen en het is zo te gebruiken .
Je bent een engel O-)

Proud to be vout!

Pagina: 1