ich programmiere freizeitlich eine kleine material-zeit-erfassung, um mir das leben leichter zu machen.
dazu nutze ich zur zeit eine voll funktionierende wlan verbindung.
Serverseite ist in Python (PC), Clientseite ist Android-Studio (Handy).
Alles läuft zwar, aber ich muß mich mit meinem Handy ins ansässige WLAN-Umfeld aufhalten, um dann
übertragen zu können. Blöd!
Ich versuche daher, eine Netzwerkverbindung zu schaffen, die von überall auf der Welt funktioniert.
Ich hätte gern gewußt, wie man das macht bzw. überhaupt einen Überblick über VPN, TCP, usw
Damit ich das umsetzen kann.
Ich habe dazu diese Seite gefunden:
http://ramakavanan.blogspot.com/2017/11 ... ython.html
server:
Code: Alles auswählen
get_IP = [TCP_IP for TCP_IP in socket.gethostbyname_ex(socket.gethostname())[2] if not TCP_IP.startswith("127.")][:1]
if TCP_IP.startswith("127."):
self.start_Server.set("Server nicht gestartet...\nKEIN W-LAN VERFÜGBAR!")
self.start_Client.set("Um den Server starten zu können,\nmuß eine W-LAN-Verbindung vorliegen!")
else:
TCP_PORT = 9090
self.start_Server.set("Server gestartet...\nIP-Adresse: {}".format(TCP_IP))
server = SocketServer.TCPServer((TCP_IP, TCP_PORT), Datentransfer)
thread = threading.Thread(target=server.serve
_forever)
thread.start()
[...]
class Datentransfer(SocketServer.BaseRequestHandler):
def handle(self):
global mainwindow
global failmessage
speicherort = os.environ['PROGRAMDATA']
path_grund = speicherort+"\\DMD-Data.soft\\SYSTEM"
path_adressen = path_grund+'\Adressenliste'
path_bauvor = path_grund+'\Bauvorhabenliste'
SQL_Adressdateien = '%s\\Adressenliste.db' %(path_adressen)
SQL_Bauvorhaben = '%s\\Bauvorhabenliste.db' %(path_bauvor)
now = datetime.datetime.now()
currentTime = now.strftime("%d.%m.%Y, %H:%M:%S")
self.request.send("Stream:\n---> DMD-Server ("+currentTime+")\n")
self.data = self.request.recv(65536)
self.json_data = json.loads(self.data)
function = self.json_data['Funktion']
if function == "BESTELLUNG":
[...]
Code: Alles auswählen
private void transfer() {
String urlText = mContentView.getIPAddress();
final ConnectivityManager connMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
final NetworkInfo networkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (networkInfo != null && networkInfo.isConnected()) {
if (urlText.length() != 0) {
AccountStorage.saveIPAddress(this, urlText);
MyClientTask myClientTask = new MyClientTask(urlText);
myClientTask.execute();
} else {
Toast.makeText(this, "SERVER-IP-ADRESSE\n(SIEHE PC) EINGEBEN!", Toast.LENGTH_LONG).show();
}
} else {
Toast.makeText(this, "KEIN W-LAN!", Toast.LENGTH_LONG).show();
}
}
[...]
//Senden
json.put("Funktion", "ARBEITSZEIT");
json.put("User", userName);
json.put("Datetime", dateTime);
json.put("Arbeitsliste", arb_List);
json.put("Materialliste", mat_List);
SocketAddress sock_addresse = new InetSocketAddress(dstAddress, dstPort);
socket = new Socket();
socket.connect(sock_addresse, timeoutMs);