Hallo,
weiß garnicht ob ich hier im richtigen Unterforum bin. Bitte jedenfalls um verschiebung falls dass der Fall sein sollte.
Mein Problem:
Ich habe eine Website mit Buttons, wenn auf einen geklickt wird soll ein Befehl (String) an einen Server gesendet werden. Meiner Recherche nach funktioniert das ganze mit einem nur mit einem (TCP?) Socket vernünftig.
Derzeit funktioniert das zwar auch, allerdings ist es eine sehr unschöne Lösung, mit folgendem Ajax (jQuery) Snippet:
Und die Ausgabe dessen auf dem Server ist dann:
GET /?S122704 HTTP/1.1
Host: 192.168.2.109:8899
Connection: keep-alive
Accept: */*
Origin: null
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36
Accept-Encoding: gzip,deflate,sdch
Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4,cs;q=0.2,fr;q=0.2
arg war in diesem Fall: S122704
und das ist eigentlich auch das einzige was ankommen soll.
Wie ich das jetzt besser machen kann weiß zwar nicht, aber eigentlich sollte ein (TCP?) Socket die Lösung sein. Ich habe das nämlich mal mit Java ausprobiert und mir eine kleine Methode geschrieben - und es funktioniert genau so, wie es sollte. Das ganze sieht so aus:
Wenn jemand dieses Prinzip in ein Web-tauglichen Code umwandeln könnte wäre dass dann denke ich optimal.
Dankeschön
MetroAffe
weiß garnicht ob ich hier im richtigen Unterforum bin. Bitte jedenfalls um verschiebung falls dass der Fall sein sollte.
Mein Problem:
Ich habe eine Website mit Buttons, wenn auf einen geklickt wird soll ein Befehl (String) an einen Server gesendet werden. Meiner Recherche nach funktioniert das ganze mit einem nur mit einem (TCP?) Socket vernünftig.
Derzeit funktioniert das zwar auch, allerdings ist es eine sehr unschöne Lösung, mit folgendem Ajax (jQuery) Snippet:
Code:
function funk(arg)
{
$.ajax({
url: 'http://192.168.2.109:8899',
type: 'GET',
data: arg
});
}
Und die Ausgabe dessen auf dem Server ist dann:
GET /?S122704 HTTP/1.1
Host: 192.168.2.109:8899
Connection: keep-alive
Accept: */*
Origin: null
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36
Accept-Encoding: gzip,deflate,sdch
Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4,cs;q=0.2,fr;q=0.2
arg war in diesem Fall: S122704
und das ist eigentlich auch das einzige was ankommen soll.
Wie ich das jetzt besser machen kann weiß zwar nicht, aber eigentlich sollte ein (TCP?) Socket die Lösung sein. Ich habe das nämlich mal mit Java ausprobiert und mir eine kleine Methode geschrieben - und es funktioniert genau so, wie es sollte. Das ganze sieht so aus:
Code:
private static void sendCommand(String msgToServer) throws UnknownHostException, IOException {
// Ip Adress and Port, where the Server is running on
final String serverIP = "192.168.2.109";
final int serverPort = 8899;
Socket clientSocket = new Socket(serverIP, serverPort);// making the socket connection
// OutputStream to Server
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
outToServer.writeBytes(msgToServer);// sending the message
/*
* BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
* // BufferedReader from Server
* String msgFromServer = inFromServer.readLine();
* // recieving the answer
*
* Wird eigentlich nicht benötigt, aber ich denke in einem Skript notwenig um nicht ein Timeout in anspruch zu nehmen
* Vom Server kann als Antwort ein belibiges Zeichen kommen (Derzeit ein Leerzeichen)
*
*/
clientSocket.close();// close the socket
}
Dankeschön

MetroAffe
Zuletzt bearbeitet: