diff --git a/README.md b/README.md
index 497ad707de419c44e12817c235ad290f47652bc3..ddf4b627e5d06e1eb8b78287ebe071fca8765104 100644
--- a/README.md
+++ b/README.md
@@ -166,4 +166,48 @@ A Python standard kĂśnyvtĂĄrai egyarĂĄnt tĂĄmogatjĂĄk az alacsony-szintĹą, socke
 Az alacsony-szintĹą hĂĄlĂłzatkezelĂŠs (CPython ĂŠs Linux kĂśrnyezet rĂŠvĂŠn) a C nyelvi szintaktikĂĄra ĂŠpĂźl, 
 ahol a nyelv a Linux socket-kezelő rendszerhívásait ajánlja ki. A követező kép ezt az alacsony-szintű TCP kommunikációt 
 ĂŠs az ahhoz meghĂ­vandĂł fĂźggvĂŠnyeket szemlĂŠlteti:   
-![pic](https://qosip.tmit.bme.hu/foswiki/pub/Meres/PythonFeladatok/python_socket.jpg)
\ No newline at end of file
+![pic](https://qosip.tmit.bme.hu/foswiki/pub/Meres/PythonFeladatok/python_socket.jpg)
+
+- [time_server.py.txt](https://qosip.tmit.bme.hu/foswiki/pub/Meres/PythonFeladatok/time_server.py.txt2): 
+Skeleton fĂĄjl a 3. feladathoz - Nevezd ĂĄt! 
+
+HASZNOS PARANCSOK Előfordulhat a szkriptek futtatásánál, hogy a félkész kódok miatt a socket-ek beragadnak és 
+lefoglaljĂĄk az adott portot/cĂ­met. Ekkor a mĂŠg futĂł programokat manuĂĄlisan kell leĂĄllĂ­tanunk:
+
+- Nyitott portok listĂĄzĂĄsa: `$ netstat -tuplen` (vagy `ss -tulpn` modernebb rendszereken - blint)
+- FutĂł Python programok kilistĂĄzĂĄsa: `$ ps auxf | grep python`
+- Program lelĂśvĂŠse: `$ sudo kill <PID> vagy a drasztikusabb $ sudo kill -9 <PID> `
+
+## 3.a Feladat - Time szerver 
+
+**Feladat:** Írjunk Python szkriptet `time_server.py` néven, ami megvalósít egy pontos időt visszaadó, 
+TCP alapú szerver funkciót. A szerver a kliensek kapcsolódása után szimplán adja vissza a pontos időt 
+(a klienseket kĂźlĂśn szĂĄlon kezelve), majd bontsa a kapcsolatot. A megvalĂłsĂ­tĂĄshoz hasznĂĄljuk a 
+Python magas-szintĹą [socketserver](https://docs.python.org/3.5/library/socketserver.html#socketserver-tcpserver-example) 
+csomagjĂĄban definiĂĄlt `ThreadingTCPServer` osztĂĄlyt.
+
+- [time_server.py.txt](https://qosip.tmit.bme.hu/foswiki/pub/Meres/PythonFeladatok/time_server.py.txt2): 
+Skeleton fĂĄjl a 2. feladathoz 
+
+- A szerver implementĂĄciĂłkat ĂŠs handler osztĂĄlyokat a socketserver csomagban talĂĄljuk.
+- A szerver osztĂĄlyok csak a kapcsolĂłdĂĄst menedzselik a Python alacsony-szintĹą socket interfĂŠszĂŠn keresztĂźl. 
+A kéréseket speciális `RequestHandler` osztályok kezelik le. Írjunk saját osztályt a kérések kezeléséhez, 
+amely a `BaseRequestHandler` osztĂĄlybĂłl szĂĄrmazzon!
+- NĂŠzzĂźnk utĂĄna a server ĂŠs handler osztĂĄlyok kapcsolatĂĄnak, mĹąkĂśdĂŠsĂŠnek ĂŠs a kĂŠrĂŠsek kezelĂŠsĂŠnek! 
+Definiáljuk felül a `handle()` metódust, amiben rögtön a kapcsolódás után adjuk vissza a pontos időt!
+- Üzenet küldéséhez használjuk a `socket` objektum `sendall()` metódusát. 
+Ne felejtsĂźk el lezĂĄrni a kapcsolatot a vĂĄlasz utĂĄn (`close()`)!
+- A `socket` objektum a handler osztályban a `request` attribútumként érhető el.
+- A pontos idő visszaadásához használjuk a `time` csomagot (`ctime()` függvény)!
+- A socket kommunikĂĄciĂłhoz `bytes` tĂ­pusra konvertĂĄlĂĄs szĂźksĂŠges. Ehhez hasznĂĄljuk az `str` tĂ­pus beĂŠpĂ­tett 
+`encode()` fĂźggvĂŠnyĂŠt.
+- Ne felejtsĂźk el elindĂ­tani a szervert a szkriptben, paramĂŠterĂźl megadva a (*cĂ­m - port*) tuple-t ĂŠs a sajĂĄt handler 
+osztĂĄlyunkat! **Ehhez pĂŠldakĂłdot talĂĄlunk a `socketserver` modul dokumentĂĄciĂłjĂĄban!**
+- A szerver IP cĂ­mĂŠt ĂŠs port szĂĄmĂĄt kĂŠrjĂźk be a szkript indĂ­tĂĄsi paramĂŠterekĂŠnt. 
+Ehhez hasznĂĄljuk a beĂŠpĂ­tett `argparse` csomagot! DokumentĂĄciĂł ĂŠs pĂŠldakĂłdok: 
+[argparse](https://docs.python.org/3.5/library/argparse.html)
+- Minden beolvasott paramĂŠter string! Port szĂĄm esetĂŠn explicite konvertĂĄljuk az ĂŠrtĂŠket `int` tĂ­pusĂşra!
+- *Ctrl-C* kombinĂĄciĂłval valĂł szabĂĄlyos kilĂŠpĂŠshez kezeljĂźk le a dobott `KeyboardInterrupt` kivĂŠtelt ĂŠs ĂĄllĂ­tsuk le 
+a szervert (`server.shutdown()`)!
+- TesztelĂŠshez hasznĂĄljuk a `telnet` programot. Pl.: `$ telnet localhost 8000`
+
diff --git a/solutions/2_feladat.md b/solutions/2_feladat.md
index ad6957be9f5132fca314330b4e2a125136c78056..a31b1f4e1f735d6998723ebddb9b4be7b03639dc 100644
--- a/solutions/2_feladat.md
+++ b/solutions/2_feladat.md
@@ -1,6 +1,7 @@
 # 2. fealadat - Statisztika szkript 
 
-
+**Feladat:** KĂŠszĂ­tsĂźnk futtathatĂł Python szkriptet `mirror_stat.py` nĂŠven, amely statisztikĂĄt kĂŠszĂ­t megadott 
+Debian mirror szerverek elérhetőségéről, amit a futása végén ki is listáz!
 
 A forrĂĄskĂłd:
 
@@ -26,7 +27,7 @@ def pingging(domains):
 
     for domain in domains:
         stats[domain] = ping3.ping(domain)  
-        # don't need sudo prev for this in a modern system
+        # don't need sudo priv for this in a modern system
 
     return stats
 
@@ -47,7 +48,7 @@ if __name__ == '__main__':
 FuttatĂĄs:
 
 ```bash
-$ ./mirror_stat.py  # don't need sudo prev for this in a modern system
+$ ./mirror_stat.py  # don't need sudo priv for this in a modern system
 {'ftp.at.debian.org': 0.03299736976623535,
  'ftp.au.debian.org': 0.34027576446533203,
  'ftp.be.debian.org': 0.03146529197692871,
diff --git a/solutions/3_feladat.md b/solutions/3_feladat.md
new file mode 100644
index 0000000000000000000000000000000000000000..9934e705c760e6345b2b8de8329e9ec9b48662b7
--- /dev/null
+++ b/solutions/3_feladat.md
@@ -0,0 +1,50 @@
+# 3. Feladat - HĂĄlĂłzati kommunikĂĄciĂł - port szkenner 
+
+## 3.a Feladat - Time szerver 
+
+**Feladat:** Írjunk Python szkriptet `time_server.py` néven, ami megvalósít egy pontos időt visszaadó, 
+TCP alapú szerver funkciót. A szerver a kliensek kapcsolódása után szimplán adja vissza a pontos időt 
+(a klienseket kĂźlĂśn szĂĄlon kezelve), majd bontsa a kapcsolatot.
+
+A forrĂĄskĂłd:
+
+```python
+#!/usr/bin/env python3
+
+from socketserver import BaseRequestHandler, ThreadingTCPServer
+import time
+import argparse
+
+
+class MyHandler(BaseRequestHandler):
+    def handle(self):
+        self.request.sendall(str.encode(time.ctime()))
+
+
+if __name__ == "__main__":
+    parser = argparse.ArgumentParser(description="Time server")
+    parser.add_argument('--ip', type=str)
+    parser.add_argument('--port', type=int)
+    args = parser.parse_args()
+    a = vars(args)
+    HOST, PORT = a["ip"], int(a["port"])
+    server = ThreadingTCPServer((HOST, PORT), MyHandler)
+    try:
+        server.serve_forever()
+    except KeyboardInterrupt:
+        server.shutdown()
+```
+
+FuttatĂĄs:
+
+```bash
+$ chmod +x time_server.py
+$ ./time_server.py --ip="localhost" --port=9999
+```
+
+TesztelĂŠs:
+
+```bash
+$ nc localhost 9999
+Mon Mar  7 17:56:58 2022
+```
\ No newline at end of file
diff --git a/time_server.py b/time_server.py
new file mode 100755
index 0000000000000000000000000000000000000000..005441ea8ce5434cac6b3339c54797890c260802
--- /dev/null
+++ b/time_server.py
@@ -0,0 +1,24 @@
+#!/usr/bin/env python3
+
+from socketserver import BaseRequestHandler, ThreadingTCPServer
+import time
+import argparse
+
+
+class MyHandler(BaseRequestHandler):
+    def handle(self):
+        self.request.sendall(str.encode(time.ctime()))
+
+
+if __name__ == "__main__":
+    parser = argparse.ArgumentParser(description="Time server")
+    parser.add_argument('--ip', type=str)
+    parser.add_argument('--port', type=int)
+    args = parser.parse_args()
+    a = vars(args)
+    HOST, PORT = a["ip"], int(a["port"])
+    server = ThreadingTCPServer((HOST, PORT), MyHandler)
+    try:
+        server.serve_forever()
+    except KeyboardInterrupt:
+        server.shutdown()