User Tools

Site Tools


tanszek:oktatas:informacios_rendszerek_integralasa:protobuf

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
tanszek:oktatas:informacios_rendszerek_integralasa:protobuf [2024/03/17 17:41] kneheztanszek:oktatas:informacios_rendszerek_integralasa:protobuf [2025/03/21 20:03] (current) – [Haladó lehetőségek] knehez
Line 52: Line 52:
 A futtatás után létrejön a book_pb2.py ami generált forráskód, és az adat interfészt tartalmazza. Ennek segítségével lehet kezelni (szerializálni és de-szerializálni) az adatokat. A futtatás után létrejön a book_pb2.py ami generált forráskód, és az adat interfészt tartalmazza. Ennek segítségével lehet kezelni (szerializálni és de-szerializálni) az adatokat.
  
-4.) Futtassuk le a **pip install --upgrade protobuf** parancsot. +4.) Futtassuk le a **pip install protobuf** parancsot. 
  
 5.) Hozzuk létre a server.py fájlt a következő tartalommal: 5.) Hozzuk létre a server.py fájlt a következő tartalommal:
Line 161: Line 161:
  
 8.) Futtassuk le a szervert és klienst. **python server.py** majd a **python client.py** parancsokat és nézzük meg és elemezzük mi történik?  8.) Futtassuk le a szervert és klienst. **python server.py** majd a **python client.py** parancsokat és nézzük meg és elemezzük mi történik? 
 +
 +9.) Írjuk meg más nyelven a klienst! 
 +
 +Egy lehetséges megoldás az alábbi java-ban. Generáljuk le a protoc segítségével a java helper osztályt. A Maven repository-ból töltsük le a protobuf.jar-t (https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/), figyelve a megfelelő verzióra. 
 +
 +<sxh java>
 +import java.io.IOException;
 +import java.io.ObjectOutputStream;
 +import java.net.Socket;
 +
 +public class Client {
 +    Socket requestSocket;
 +    ObjectOutputStream out;
 +
 +    Client() {
 +    }
 +
 +    void run() {
 +        try {
 +            requestSocket = new Socket("localhost", 4100);
 +            out = new ObjectOutputStream(requestSocket.getOutputStream());
 +            BookOuterClass.Books books = BookOuterClass.Books.parseFrom(requestSocket.getInputStream());
 +            for (BookOuterClass.Book book : books.getBooksList()) {
 +                System.out.println("Book ID: " + book.getId());
 +                System.out.println("Author: " + book.getAuthor());
 +            }
 +
 +        } catch (IOException ioException) {
 +            ioException.printStackTrace();
 +        }
 +    }
 +
 +    public static void main(String args[]) {
 +        Client client = new Client();
 +        client.run();
 +    }
 +}
 +</sxh>
 +
 +
tanszek/oktatas/informacios_rendszerek_integralasa/protobuf.1710697319.txt.gz · Last modified: 2024/03/17 17:41 by knehez