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 [2024/01/12 10:29] 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 =====
  
 <sxh python> <sxh python>
Line 36: Line 36:
     # Run the server's main loop     # Run the server's main loop
     server.serve_forever()     server.serve_forever()
-</shx>+</sxh>
  
-===== Client =====+===== Client - in Python=====
  
 <sxh python> <sxh python>
Line 50: Line 50:
 # Print list of available methods # Print list of available methods
 print(s.system.listMethods()) print(s.system.listMethods())
-</shx>+</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> 
 + 
 + 
tanszek/oktatas/iss_t/xml-rpc.1705055397.txt.gz · Last modified: 2024/01/12 10:29 by knehez