User Tools

Site Tools


tanszek:oktatas:iss_t:xml-rpc

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:iss_t:xml-rpc [2023/05/08 19:04] – [XML-RPC] kneheztanszek:oktatas:iss_t:xml-rpc [2026/03/16 09:32] (current) – [Server] knehez
Line 2: Line 2:
  
 [[https://www.tutorialspoint.com/xml-rpc/xml_rpc_intro.htm|Introduction to XML-RPC]] [[https://www.tutorialspoint.com/xml-rpc/xml_rpc_intro.htm|Introduction to XML-RPC]]
-===== Server =====+===== Server in Python =====
  
-<code python>+<sxh python>
 from xmlrpc.server import SimpleXMLRPCServer from xmlrpc.server import SimpleXMLRPCServer
 from xmlrpc.server import SimpleXMLRPCRequestHandler from xmlrpc.server import SimpleXMLRPCRequestHandler
Line 36: Line 36:
     # Run the server's main loop     # Run the server's main loop
     server.serve_forever()     server.serve_forever()
-</code>+</sxh>
  
-===== Client =====+===== Client - in Python=====
  
-<code python>+<sxh python>
 import xmlrpc.client import xmlrpc.client
  
Line 50: Line 50:
 # Print list of available methods # Print list of available methods
 print(s.system.listMethods()) print(s.system.listMethods())
 +</sxh>
 +
 +----
 +
 +==== Task: XML-RPC – Remote Task Manager ====
 +
 +The goal of this exercise is to understand how **Remote Procedure Calls (RPC)** work in a client–server architecture using the XML-RPC protocol. Implement a simple **task management system** consisting of a Python **XML-RPC server** and a Python **client application**.
 +
 +==== Server ====
 +
 +Create an XML-RPC server in Python that manages a list of tasks. Each task should contain the following fields:
 +
 +  * **id** – unique integer identifier
 +  * **title** – short text describing the task
 +  * **completed** – boolean value indicating whether the task is finished
 +
 +The server must provide the following remote methods:
 +
 +^ Method ^ Description ^
 +| add_task(title) | Creates a new task and returns the generated task ID |
 +| list_tasks() | Returns all tasks as a list of dictionaries |
 +| complete_task(task_id) | Marks the specified task as completed |
 +| delete_task(task_id) | Removes the specified task |
 +| get_task(task_id) | Returns the details of a single task |
 +| get_task_by_title(title) | Returns the details of a single task (by title string) |
 +
 +The server should store tasks **in memory** while it is running.
 +
 +==== Client ====
 +
 +Write a Python client that connects to the XML-RPC server and allows the user to interact with the task manager. The client program should:
 +
 +  * connect to the XML-RPC server
 +  * call the remote methods
 +  * display results in a readable format
 +
 +The client should provide a simple **command line menu**, for example:
 +
 +<code python>
 +1 - Add task
 +2 - List tasks
 +3 - Complete task
 +4 - Delete task
 +5 - Show task details by id
 +6 - Show task details by title
 +0 - Exit
 </code> </code>
 +
 +
 +
tanszek/oktatas/iss_t/xml-rpc.1683572660.txt.gz · Last modified: 2023/05/08 19:04 by knehez