teil13
This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								teil13/__pycache__/network.cpython-39.pyc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								teil13/__pycache__/network.cpython-39.pyc
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										15
									
								
								teil13/fib.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								teil13/fib.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | |||||||
|  | # fib.py | ||||||
|  | import sys | ||||||
|  |  | ||||||
|  | # berechnet rekursiv die Fibonaccizahl n. | ||||||
|  | def fib(n): | ||||||
|  |  | ||||||
|  | # Rekursionsbedingung | ||||||
|  |   if n in [0,1]: | ||||||
|  |     return 1 | ||||||
|  |   else: | ||||||
|  | # Rekursionsaufruf | ||||||
|  |     return fib(n-1) + fib(n-2) | ||||||
|  |  | ||||||
|  | element = int(sys.argv[1]) | ||||||
|  | print(fib(element)) | ||||||
							
								
								
									
										60
									
								
								teil13/fibclient.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								teil13/fibclient.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,60 @@ | |||||||
|  | # encoding: utf-8 | ||||||
|  | # fibclient.py | ||||||
|  | import socket | ||||||
|  | import time | ||||||
|  | from network.const import __ADDRESS__ | ||||||
|  |  | ||||||
|  | DISCONNECT_MESSAGE = "!DISCONNECT" | ||||||
|  |  | ||||||
|  | # Verbindung herstellen | ||||||
|  | def connect(): | ||||||
|  |     client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) | ||||||
|  |     client.connect(__ADDRESS__) | ||||||
|  |     return client | ||||||
|  |  | ||||||
|  | # msg senden | ||||||
|  | def send(client, msg): | ||||||
|  |     message = msg.encode('utf-8') | ||||||
|  |     client.send(message) | ||||||
|  |  | ||||||
|  | # Daten empfangen | ||||||
|  | def receive(conn): | ||||||
|  |   msg = conn.recv(64).decode('utf-8') | ||||||
|  |  | ||||||
|  |   return msg | ||||||
|  |  | ||||||
|  | # Hauptmethode | ||||||
|  | def start(): | ||||||
|  | # String von Console lesen | ||||||
|  |     answer = input('Verbindung aufbauen? (ja/nein)? ') | ||||||
|  |     if answer.lower() != 'ja': | ||||||
|  |         return | ||||||
|  |  | ||||||
|  | # Verbindung aufbauen | ||||||
|  |     connection = connect() | ||||||
|  |     while True: | ||||||
|  |         msg = input("Nachricht (q für quit): ") | ||||||
|  |  | ||||||
|  | # Bei Eingabe == 'q' Schleife beenden. | ||||||
|  |         if msg == 'q': | ||||||
|  |             break | ||||||
|  | # Sonst eingegeben String an Server senden. | ||||||
|  |         send(connection, msg) | ||||||
|  | # und auf Ergebnis warten. | ||||||
|  |         result = receive(connection) | ||||||
|  |         print(f'result={result}') | ||||||
|  |  | ||||||
|  | # Fibonaccizahl isolieren. | ||||||
|  |         fib = int(result.split('[')[0]) | ||||||
|  |         print(f'Fibonnaci-Zahl ist {fib}') | ||||||
|  |         print(f'[RESULT] {result}') | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # zum Beenden die Nachricht 'quit an den Server senden | ||||||
|  |     send(connection, 'quit') | ||||||
|  |     time.sleep(1) | ||||||
|  |     print('Disconnected') | ||||||
|  |  | ||||||
|  | # Hauptprogramm: Client starten | ||||||
|  | if __name__ == '__main__': | ||||||
|  |   start() | ||||||
							
								
								
									
										92
									
								
								teil13/fibserver.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										92
									
								
								teil13/fibserver.py
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,92 @@ | |||||||
|  | #! /usr/bin/python3 | ||||||
|  |  | ||||||
|  | import socket | ||||||
|  | import threading | ||||||
|  | from network.const import __ADDRESS__ | ||||||
|  |  | ||||||
|  | # Server-Socket aufbauen | ||||||
|  | server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) | ||||||
|  |  | ||||||
|  | #Socket an unsere Server-Adresse binden | ||||||
|  | server.bind(__ADDRESS__) | ||||||
|  |  | ||||||
|  | # Set mit den verbundenen Clients | ||||||
|  | clients = set() | ||||||
|  |  | ||||||
|  | # Locks für den Zugriff auf das Set | ||||||
|  | clients_lock = threading.Lock() | ||||||
|  |  | ||||||
|  | # Unsere Arbeitsmethode: rekursive Fibonacci-Reihe | ||||||
|  | def fib(n): | ||||||
|  |  | ||||||
|  | # Rekursionsbedingung | ||||||
|  |   if n in [0,1]: | ||||||
|  |     return 1 | ||||||
|  |   else: | ||||||
|  | # Rekursionsaufruf | ||||||
|  |     return fib(n-1) + fib(n-2) | ||||||
|  |  | ||||||
|  | #bearbeitet eine eingehende Connection annehmen, pro Client  ein seperater Thread | ||||||
|  | def handle_connection(conn,addr): | ||||||
|  |   print(f"[NEW CONNECTION] {addr} Connected") | ||||||
|  |  | ||||||
|  |   try: | ||||||
|  |     connected = True | ||||||
|  |     while connected: | ||||||
|  |       msg = conn.recv(64).decode('utf-8') | ||||||
|  |       print(f'[RECEIVED] {msg}') | ||||||
|  |       if not msg: | ||||||
|  |         break | ||||||
|  |       else: | ||||||
|  |         if msg.startswith('fib:'): | ||||||
|  |           element = int(msg[4:]) | ||||||
|  |           fibo = fib(element) | ||||||
|  |           print(f'[SENDING] fib({element})={fibo}') | ||||||
|  | # Ergebnis an Client senden. | ||||||
|  |           with clients_lock: | ||||||
|  |             for c in clients: | ||||||
|  |               c.sendall(f'{fibo}'.encode('utf-8')) | ||||||
|  |         else: | ||||||
|  |           pass | ||||||
|  |  | ||||||
|  |         if msg == 'quit': | ||||||
|  |           print('[DISCONNECT]') | ||||||
|  |           connected = False | ||||||
|  |  | ||||||
|  | #      with clients_lock: | ||||||
|  | #        for c in clients: | ||||||
|  | #          c.sendall(f"[{addr}] {msg}".encode('utf-8')) | ||||||
|  |  | ||||||
|  |   finally: | ||||||
|  | # Clientverbindung abbauen und aus Set entfernen. | ||||||
|  |       with clients_lock: | ||||||
|  |         clients.remove(conn) | ||||||
|  |  | ||||||
|  |         conn.close() | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # Start des Servers | ||||||
|  | def start(): | ||||||
|  |     print('[SERVER STARTED]!') | ||||||
|  | # Horchen nach eingehender Verbindung | ||||||
|  |     server.listen() | ||||||
|  |     while True: | ||||||
|  | # Neue Verbindung annehmen | ||||||
|  |  | ||||||
|  |         conn, addr = server.accept() | ||||||
|  | # Neuen Client in Set aufnehmen | ||||||
|  |         with clients_lock: | ||||||
|  |             print(f'[ADDING CONNECTION] {conn}') | ||||||
|  |             clients.add(conn) | ||||||
|  |  | ||||||
|  | #Thread zur Bearbeitung des Requests starten. | ||||||
|  |         thread = threading.Thread(target=handle_connection, args=(conn, addr)) | ||||||
|  |         thread.start() | ||||||
|  |  | ||||||
|  | #Hauptprogramm: Serverstart einleiten | ||||||
|  | if __name__ == '__main__': | ||||||
|  |   start() | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
							
								
								
									
										11
									
								
								teil13/get_requests.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								teil13/get_requests.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | |||||||
|  | import requests | ||||||
|  |  | ||||||
|  | url = requests.get('https://raspithek.de') | ||||||
|  |  | ||||||
|  |  | ||||||
|  | data = url.text | ||||||
|  |  | ||||||
|  |  | ||||||
|  | print(data) | ||||||
|  |  | ||||||
|  |  | ||||||
							
								
								
									
										20
									
								
								teil13/get_urllib.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								teil13/get_urllib.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | |||||||
|  | # encoding: UTF-8 | ||||||
|  | import urllib.request | ||||||
|  |  | ||||||
|  | # URL öffnen und Daten anfordern. Ohne spezielle Dateiangabe | ||||||
|  | # liefert der Webserver immer die index.html zurück. | ||||||
|  | fp = urllib.request.urlopen('https://raspithek.de') | ||||||
|  |  | ||||||
|  | # Daten auslesen | ||||||
|  | data = fp.read() | ||||||
|  |  | ||||||
|  | print(type(data)) | ||||||
|  | # Die Daten sin vom Datentyp Bytes und müssen daher erst | ||||||
|  | # zum UTF-8 String umkodiert werden. | ||||||
|  | str = data.decode('utf8') | ||||||
|  |  | ||||||
|  | fp.close() | ||||||
|  |  | ||||||
|  | print(str) | ||||||
|  |  | ||||||
|  |  | ||||||
							
								
								
									
										554
									
								
								teil13/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										554
									
								
								teil13/index.html
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1
									
								
								teil13/network/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								teil13/network/__init__.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  |  | ||||||
							
								
								
									
										
											BIN
										
									
								
								teil13/network/__pycache__/__init__.cpython-39.pyc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								teil13/network/__pycache__/__init__.cpython-39.pyc
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								teil13/network/__pycache__/const.cpython-39.pyc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								teil13/network/__pycache__/const.cpython-39.pyc
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										10
									
								
								teil13/network/code.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								teil13/network/code.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | |||||||
|  | def receive(conn): | ||||||
|  |   msg = conn.recv(64).decode('utf-8') | ||||||
|  |  | ||||||
|  |   return msg | ||||||
|  |  | ||||||
|  | def send(client, msg): | ||||||
|  |     message = msg.encode('utf-8') | ||||||
|  |     client.send(message) | ||||||
|  |  | ||||||
|  |  | ||||||
							
								
								
									
										12
									
								
								teil13/network/const.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								teil13/network/const.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | |||||||
|  | #network/const.py | ||||||
|  |  | ||||||
|  | import socket | ||||||
|  |  | ||||||
|  | # TCP Port | ||||||
|  | __PORT__ = 6554 | ||||||
|  |  | ||||||
|  | #Server-IP  | ||||||
|  | __SERVER__ = socket.gethostbyname(socket.gethostname()) | ||||||
|  |  | ||||||
|  | # Server-Adresse (IP,Port) | ||||||
|  | __ADDRESS__ = (__SERVER__,__PORT__) | ||||||
							
								
								
									
										3
									
								
								teil13/substring.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								teil13/substring.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  |  | ||||||
|  |  | ||||||
|  | print('fib:58'[4:]) | ||||||
							
								
								
									
										5
									
								
								teil13/test.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								teil13/test.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | from network.const import __SERVER__ | ||||||
|  | from network.const import __ADDRESS__ | ||||||
|  |  | ||||||
|  | print(f'Server:{__SERVER__}') | ||||||
|  | print(f'Address:{__ADDRESS__}') | ||||||
		Reference in New Issue
	
	Block a user