Java Chat Server

SteinAdler5

Neues Mitglied
Hallo kann mir jemand diesen code so abändern das es ohne gui gestartet wird?
Ich möchte diesen Chat Server nämlich auf meinem vserver nutzen können.

Main Klasse:
ServerFrame.java
Java:
package de.steinadler5.socket;
import java.awt.Color;
import java.io.File;
import javax.swing.JFileChooser;
import javax.swing.UIManager;
@SuppressWarnings("serial")
public class ServerFrame extends javax.swing.JFrame {
    public SocketServer server;
    public Thread serverThread;
    public String filePath = "D:/Data.xml";
    public JFileChooser fileChooser;
    public ServerFrame() {
        initComponents();    
        jTextField3.setEditable(false);
        jTextField3.setBackground(Color.WHITE);
        fileChooser = new JFileChooser();
        jTextArea1.setEditable(false);
    }
    public boolean isWin32(){
        return System.getProperty("os.name").startsWith("Windows");
    }
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {
        jButton1 = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTextArea1 = new javax.swing.JTextArea();
        jLabel3 = new javax.swing.JLabel();
        jTextField3 = new javax.swing.JTextField();
        jButton2 = new javax.swing.JButton();
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Server");
        jButton1.setText("Start Server");
        jButton1.setEnabled(false);
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });
        jTextArea1.setColumns(20);
        jTextArea1.setFont(new java.awt.Font("Consolas", 0, 12)); // NOI18N
        jTextArea1.setRows(5);
        jScrollPane1.setViewportView(jTextArea1);
        jLabel3.setText("Datenbank Datei: ");
        jButton2.setText("Wählen...");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });
        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane1)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addComponent(jLabel3)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jTextField3, javax.swing.GroupLayout.DEFAULT_SIZE, 282, Short.MAX_VALUE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 91, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jButton1)))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel3)
                    .addComponent(jButton2)
                    .addComponent(jButton1))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 287, Short.MAX_VALUE)
                .addContainerGap())
        );
        pack();
    }// </editor-fold>//GEN-END:initComponents
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
        server = new SocketServer(this);
        jButton1.setEnabled(false); jButton2.setEnabled(false);
    }//GEN-LAST:event_jButton1ActionPerformed
    public void RetryStart(int port){
        if(server != null){ server.stop(); }
        server = new SocketServer(this, port);
    }
    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
        fileChooser.showDialog(this, "Auswählen");
        File file = fileChooser.getSelectedFile();
        if(file != null){
            filePath = file.getPath();
            if(this.isWin32()){ filePath = filePath.replace("\\", "/"); }
            jTextField3.setText(filePath);
            jButton1.setEnabled(true);
        }
    }//GEN-LAST:event_jButton2ActionPerformed
    public static void main(String args[]) {
        try{
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        }
        catch(Exception ex){
            System.out.println("Look & Feel Exception");
        }
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new ServerFrame().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JScrollPane jScrollPane1;
    public javax.swing.JTextArea jTextArea1;
    private javax.swing.JTextField jTextField3;
    // End of variables declaration//GEN-END:variables
}

SocketServer.java
Java:
package de.steinadler5.socket;
import java.io.*;
import java.net.*;
class ServerThread extends Thread {
    public SocketServer server = null;
    public Socket socket = null;
    public int ID = -1;
    public String username = "";
    public ObjectInputStream streamIn  =  null;
    public ObjectOutputStream streamOut = null;
    public ServerFrame ui;
    public ServerThread(SocketServer _server, Socket _socket){ 
        super();
        server = _server;
        socket = _socket;
        ID     = socket.getPort();
        ui = _server.ui;
    }
    public void send(Message msg){
        try {
            streamOut.writeObject(msg);
            streamOut.flush();
        }
        catch (IOException ex) {
            System.out.println("Exception [SocketClient : send(...)]");
        }
    }
    public int getID(){ 
        return ID;
    }
    @SuppressWarnings("deprecation")
    public void run(){ 
        ui.jTextArea1.append("\nServer Thread " + ID + " running.");
        while (true){ 
            try{ 
                Message msg = (Message) streamIn.readObject();
                server.handle(ID, msg);
            }
            catch(Exception ioe){ 
                System.out.println(ID + " ERROR reading: " + ioe.getMessage());
                server.remove(ID);
                stop();
            }
        }
    }
    public void open() throws IOException { 
        streamOut = new ObjectOutputStream(socket.getOutputStream());
        streamOut.flush();
        streamIn = new ObjectInputStream(socket.getInputStream());
    }
    public void close() throws IOException { 
        if (socket != null)    socket.close();
        if (streamIn != null)  streamIn.close();
        if (streamOut != null) streamOut.close();
    }
}
public class SocketServer implements Runnable {
    public ServerThread clients[];
    public ServerSocket server = null;
    public Thread       thread = null;
    public int clientCount = 0, port = 13000;
    public ServerFrame ui;
    public Database db;
    public SocketServer(ServerFrame frame){
        clients = new ServerThread[50];
        ui = frame;
        db = new Database(ui.filePath);
    try{ 
        server = new ServerSocket(port);
            port = server.getLocalPort();
        ui.jTextArea1.append("Server startet. IP : " + InetAddress.getLocalHost() + ", Port : " + server.getLocalPort());
        start();
        }
    catch(IOException ioe){ 
            ui.jTextArea1.append("Can not bind to port : " + port + "\nRetrying");
            ui.RetryStart(0);
    }
    }
    public SocketServer(ServerFrame frame, int Port){
        clients = new ServerThread[50];
        ui = frame;
        port = Port;
        db = new Database(ui.filePath);
    try{ 
        server = new ServerSocket(port);
            port = server.getLocalPort();
        ui.jTextArea1.append("Server startet. IP : " + InetAddress.getLocalHost() + ", Port : " + server.getLocalPort());
        start();
        }
    catch(IOException ioe){ 
            ui.jTextArea1.append("\nCan not bind to port " + port + ": " + ioe.getMessage());
    }
    }
    public void run(){ 
    while (thread != null){ 
            try{ 
        ui.jTextArea1.append("\nWaiting for a client ...");
            addThread(server.accept());
        }
        catch(Exception ioe){
                ui.jTextArea1.append("\nServer accept error: \n");
                ui.RetryStart(0);
        }
        }
    }
    public void start(){ 
        if (thread == null){ 
            thread = new Thread(this);
        thread.start();
    }
    }
    @SuppressWarnings("deprecation")
    public void stop(){ 
        if (thread != null){ 
            thread.stop();
        thread = null;
    }
    }
    private int findClient(int ID){ 
        for (int i = 0; i < clientCount; i++){
            if (clients[i].getID() == ID){
                    return i;
                }
    }
    return -1;
    }
    public synchronized void handle(int ID, Message msg){ 
    if (msg.content.equals(".bye")){
            Announce("signout", "SERVER", msg.sender);
            remove(ID);
    }
    else{
            if(msg.type.equals("login")){
                if(findUserThread(msg.sender) == null){
                    if(db.checkLogin(msg.sender, msg.content)){
                        clients[findClient(ID)].username = msg.sender;
                        clients[findClient(ID)].send(new Message("login", "SERVER", "TRUE", msg.sender));
                        Announce("newuser", "SERVER", msg.sender);
                        SendUserList(msg.sender);
                    }
                    else{
                        clients[findClient(ID)].send(new Message("login", "SERVER", "FALSE", msg.sender));
                    }
                }
                else{
                    clients[findClient(ID)].send(new Message("login", "SERVER", "FALSE", msg.sender));
                }
            }
            else if(msg.type.equals("message")){
                if(msg.recipient.equals("All")){
                    Announce("message", msg.sender, msg.content);
                }
                else{
                    findUserThread(msg.recipient).send(new Message(msg.type, msg.sender, msg.content, msg.recipient));
                    clients[findClient(ID)].send(new Message(msg.type, msg.sender, msg.content, msg.recipient));
                }
            }
            else if(msg.type.equals("test")){
                clients[findClient(ID)].send(new Message("test", "SERVER", "OK", msg.sender));
            }
            else if(msg.type.equals("signup")){
                if(findUserThread(msg.sender) == null){
                    if(!db.userExists(msg.sender)){
                        db.addUser(msg.sender, msg.content);
                        clients[findClient(ID)].username = msg.sender;
                        clients[findClient(ID)].send(new Message("signup", "SERVER", "TRUE", msg.sender));
                        clients[findClient(ID)].send(new Message("login", "SERVER", "TRUE", msg.sender));
                        Announce("newuser", "SERVER", msg.sender);
                        SendUserList(msg.sender);
                    }
                    else{
                        clients[findClient(ID)].send(new Message("signup", "SERVER", "FALSE", msg.sender));
                    }
                }
                else{
                    clients[findClient(ID)].send(new Message("signup", "SERVER", "FALSE", msg.sender));
                }
            }
            else if(msg.type.equals("upload_req")){
                if(msg.recipient.equals("All")){
                    clients[findClient(ID)].send(new Message("message", "SERVER", "Uploading to 'All' forbidden", msg.sender));
                }
                else{
                    findUserThread(msg.recipient).send(new Message("upload_req", msg.sender, msg.content, msg.recipient));
                }
            }
            else if(msg.type.equals("upload_res")){
                if(!msg.content.equals("NO")){
                    String IP = findUserThread(msg.sender).socket.getInetAddress().getHostAddress();
                    findUserThread(msg.recipient).send(new Message("upload_res", IP, msg.content, msg.recipient));
                }
                else{
                    findUserThread(msg.recipient).send(new Message("upload_res", msg.sender, msg.content, msg.recipient));
                }
            }
    }
    }
    public void Announce(String type, String sender, String content){
        Message msg = new Message(type, sender, content, "All");
        for(int i = 0; i < clientCount; i++){
            clients[i].send(msg);
        }
    }
    public void SendUserList(String toWhom){
        for(int i = 0; i < clientCount; i++){
            findUserThread(toWhom).send(new Message("newuser", "SERVER", clients[i].username, toWhom));
        }
    }
    public ServerThread findUserThread(String usr){
        for(int i = 0; i < clientCount; i++){
            if(clients[i].username.equals(usr)){
                return clients[i];
            }
        }
        return null;
    }
    @SuppressWarnings("deprecation")
    public synchronized void remove(int ID){ 
    int pos = findClient(ID);
        if (pos >= 0){ 
            ServerThread toTerminate = clients[pos];
            ui.jTextArea1.append("\nRemoving client thread " + ID + " at " + pos);
        if (pos < clientCount-1){
                for (int i = pos+1; i < clientCount; i++){
                    clients[i-1] = clients[i];
            }
        }
        clientCount--;
        try{ 
              toTerminate.close();
        }
        catch(IOException ioe){ 
              ui.jTextArea1.append("\nError closing thread: " + ioe);
        }
        toTerminate.stop();
    }
    }
    private void addThread(Socket socket){ 
    if (clientCount < clients.length){ 
            ui.jTextArea1.append("\nClient accepted: " + socket);
        clients[clientCount] = new ServerThread(this, socket);
        try{ 
              clients[clientCount].open();
            clients[clientCount].start(); 
            clientCount++;
        }
        catch(IOException ioe){ 
              ui.jTextArea1.append("\nError opening thread: " + ioe);
        }
    }
    else{
            ui.jTextArea1.append("\nClient refused: maximum " + clients.length + " reached.");
    }
    }
}

Message.java
Java:
package de.steinadler5.socket;
import java.io.Serializable;
public class Message implements Serializable{
    private static final long serialVersionUID = 1L;
    public String type, sender, content, recipient;
    public Message(String type, String sender, String content, String recipient){
        this.type = type; this.sender = sender; this.content = content; this.recipient = recipient;
    }
    @Override
    public String toString(){
        return "{type='"+type+"', sender='"+sender+"', content='"+content+"', recipient='"+recipient+"'}";
    }
}

Database.java
Java:
package de.steinadler5.socket;
import java.io.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.*;
public class Database {
    public String filePath;
    public Database(String filePath){
        this.filePath = filePath;
    }
    public boolean userExists(String username){
        try{
            File fXmlFile = new File(filePath);
            DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
            Document doc = dBuilder.parse(fXmlFile);
            doc.getDocumentElement().normalize();
            NodeList nList = doc.getElementsByTagName("user");
            for (int temp = 0; temp < nList.getLength(); temp++) {
                Node nNode = nList.item(temp);
                if (nNode.getNodeType() == Node.ELEMENT_NODE) {
                    Element eElement = (Element) nNode;
                    if(getTagValue("username", eElement).equals(username)){
                        return true;
                    }
                }
            }
            return false;
        }
        catch(Exception ex){
            System.out.println("Database exception : userExists()");
            return false;
        }
    }
    public boolean checkLogin(String username, String password){
        if(!userExists(username)){ return false; }
        try{
            File fXmlFile = new File(filePath);
            DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
            Document doc = dBuilder.parse(fXmlFile);
            doc.getDocumentElement().normalize();
            NodeList nList = doc.getElementsByTagName("user");
            for (int temp = 0; temp < nList.getLength(); temp++) {
                Node nNode = nList.item(temp);
                if (nNode.getNodeType() == Node.ELEMENT_NODE) {
                    Element eElement = (Element) nNode;
                    if(getTagValue("username", eElement).equals(username) && getTagValue("password", eElement).equals(password)){
                        return true;
                    }
                }
            }
            System.out.println("Hippie");
            return false;
        }
        catch(Exception ex){
            System.out.println("Database exception : userExists()");
            return false;
        }
    }
    public void addUser(String username, String password){
        try {
            DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
            Document doc = docBuilder.parse(filePath);
            Node data = doc.getFirstChild();
            Element newuser = doc.createElement("user");
            Element newusername = doc.createElement("username"); newusername.setTextContent(username);
            Element newpassword = doc.createElement("password"); newpassword.setTextContent(password);
            newuser.appendChild(newusername); newuser.appendChild(newpassword); data.appendChild(newuser);
            TransformerFactory transformerFactory = TransformerFactory.newInstance();
            Transformer transformer = transformerFactory.newTransformer();
            DOMSource source = new DOMSource(doc);
            StreamResult result = new StreamResult(new File(filePath));
            transformer.transform(source, result);
       }
           catch(Exception ex){
        System.out.println("Exceptionmodify xml");
       }
    }
    public static String getTagValue(String sTag, Element eElement) {
    NodeList nlList = eElement.getElementsByTagName(sTag).item(0).getChildNodes();
        Node nValue = (Node) nlList.item(0);
    return nValue.getNodeValue();
  }
}

Wäre richig nice wenn mir einer helfen kann.
MFG Luca.
 

thomasbomme

Mitglied
ich würde an deiner Stelle nicht diesen Chat umschreiben sondern einen neuen erstellen, und manche Codezeilen von diesem übernehmen... geht wsl. schneller
 

NeCIAx

Mitglied
Hallo wie thomasbomme schon sagte es geht schneller das Ding direkt von neu auf Konsolen Basis zu bauen, aber das ist auch nicht so schwer zu realisieren.

Ich denke mal das du über die Konsole dann auch befehle verwenden können willst.
Das habe ich z.B. mit einem normalen Scanner mal gebaut.
 

XyMorgan

Aktives Mitglied
Der Post war ja schon was älter, ob da noch bedarf ist? Ansonsten, wenn man reinschaut in den Code erkennt man, dass es ein reines Server-Modul ist, dass in eine GUI gepackt wurde. Lässt sich so auf einem VServer (i.d.R. ohne Grafiksupport) nicht starten. Die Nachrichten kommen nachher vom Client der sich connected. Umbau ist eher simpel. Hatte es mal fix gemacht und gesehen, dass der Post etwas älter ist.

Im Grunde ServerFrame raus, MainApp-Klasse erstellen (oder ServerSocket zur App umbauen). Entweder pfad für die Config/Logindatei über Parameter oder fix im Code. In der Klasse SocketServer die Infoausgaben zur GUI raus und ggf. in die Console/Log schreiben. Fertig.

Was hier außer dem Socket nutzbar ist, ist das Login der Clients über Anmeldung und Persistenz in der Datei.
 

JuKu

Top Contributor
Der Client & Server Code sollte immer getrennt sein (abgesehen von Gemeinsamkeiten), sodass der Server gar keine GUI hat.
Du solltest Server immer in der Console starten.

Nur als Tipps, falls du das ganze mal ausbauen solltest:
Es ist keine gute Idee, für jede Verbindung einen eigenen Thread zu erstellen, auch wenn dies in vielen Anfänger Tutorials so gehandhabt wird.
Stattdessen solltest du Thread Pools oder Executor Services nutzen.

Als Network Library kann ich dir übrigens http://netty.io empfehlen, oder du nutzt socket.io, ebenfalls sehr nice.
 
N

neoexpert

Gast
Willst du meinen nodejs chat haben? Server läuft auf allen bekannten Systemen (Voraussetzung nodejs) und als Clients kannst du meine Android APP (NeoChat) oder auch im Browser haben: Beispiel:
www.lean-production-shop.de
Unten rechts ist ein div, dort kann man chatten.
PS: man kann mit der APP auch Dateien über den selben Port versenden.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Socket Chat entwickeln mit Java Server Client Netzwerkprogrammierung 4
H Socket Java Chat - Verbindung zum Server fehlgeschlagen. Netzwerkprogrammierung 5
P Chat in Java Netzwerkprogrammierung 3
C Java Chat Admin Kenzeichnung Netzwerkprogrammierung 14
T Socket Java Chat Netzwerkprogrammierung 2
E JAVA Chat Netzwerkprogrammierung 19
C Java Chat funktioniert nicht richtig Netzwerkprogrammierung 6
T Java Chat über UDP Netzwerkprogrammierung 7
P Java Multiuser Chat hohe Systemauslastung Netzwerkprogrammierung 24
R Java-Chat-Applet funktioniert nur in Eclipse Netzwerkprogrammierung 3
S Java Applet Chat Grundsatzfrage Netzwerkprogrammierung 6
R Java Chat über Inet connecten Netzwerkprogrammierung 3
N Java-Chat (lauffähig) macht Probleme auf der Konsole Netzwerkprogrammierung 6
N Java Chat-Problem Netzwerkprogrammierung 4
G Java Chat mit HTML Cleint Netzwerkprogrammierung 3
S Einfacher Multiuser chat in java Netzwerkprogrammierung 18
D HTTP Apache-HttpClient/UNAVAILABLE (java 1.4) Netzwerkprogrammierung 18
M JAX-WS unter Java 17 plötzlich nicht mehr möglich Netzwerkprogrammierung 5
K Java RMI bricht ab wenn Remote eine Methode ausgeführt werden soll Netzwerkprogrammierung 5
M HTTP Let's Encrypt und Java Trust-Store Netzwerkprogrammierung 6
JaXnPriVate Java HTTPS Server (Secure Sockets) Netzwerkprogrammierung 15
Tobero Java serversocket nicht nur zuganglich für localhost Netzwerkprogrammierung 6
D path-Variablen in eine URL hinzufügen mit Java 1.8 Netzwerkprogrammierung 2
D WebSocket Server mit HTML Client und Java Server Netzwerkprogrammierung 5
S Von Java auf passwortgeschützten Server zugreifen + Umgang mit Ports Netzwerkprogrammierung 28
S Probleme bei Java-Installation auf Server (Linux/Shell/Terminal) Netzwerkprogrammierung 6
S Java: Anbindung an einen realen Server? (+ Portfreigabe) Netzwerkprogrammierung 8
x46 Java SSLContext erstellen mit SSL-Zertifikat Netzwerkprogrammierung 1
P Jenkins Login per Java Download Manager Netzwerkprogrammierung 15
N Java socket Programmierung Filme verschicken Netzwerkprogrammierung 20
S HTTP Post?!? - Java Server Netzwerkprogrammierung 7
F Verbindung zu einem LDAP Server über Java Netzwerkprogrammierung 4
K Java Websocketserver Problem | Android to Pi Netzwerkprogrammierung 1
R Anfängerbeispiel: Suche Java-Anwendung die http-Anfragen in Tomcat liest Netzwerkprogrammierung 8
V Browsergame mit Java(WebSocketServer) als Backend? Netzwerkprogrammierung 5
platofan23 Socket Java Socket mit DynDns nicht erreichbar Netzwerkprogrammierung 6
S Fragen zu Java Webservice mit Axis2 Netzwerkprogrammierung 0
M Mit Java Mail Mails an Webmailer schicken Netzwerkprogrammierung 1
mor16Euro HTTP Php website mit Java aktualisiern Netzwerkprogrammierung 6
T HTTP JAVA Browser Konsolenanfrage(JavaScript) Netzwerkprogrammierung 7
L Socket Wie kann man in Java die Anzahl der Objekte in einem InputStream sehen ohne ihn durchgehen zu müssen Netzwerkprogrammierung 1
M Socket Verbindung Matlab(Server) Java(Client) Netzwerkprogrammierung 1
M Socket peer to peer Verbindung zwischen Java und Matlab Netzwerkprogrammierung 0
L Remote Desktop per Java steuern Netzwerkprogrammierung 4
F Server für Java Applikationen Netzwerkprogrammierung 16
J Webserver mit Java schreiben? Netzwerkprogrammierung 4
D JAVA RMI Netzwerkprogrammierung 1
K HTTP Mit Java HTML Codeauslesen um damit zu arbeiten Netzwerkprogrammierung 7
V Kann man mit Hilfe eines Java-Programms den Zugriff auf bestimmte Internetseiten verhinden? Netzwerkprogrammierung 3
J HTTP [Java 9] Neuer HTTP Client - Tutorial Netzwerkprogrammierung 3
T Mikrofonaudio über Java Server an Webbrowser streamen Netzwerkprogrammierung 13
A Bestimmter URL/Certificate per Java immer vertrauen (Trustmanager/HostnameVerifier) Netzwerkprogrammierung 1
T VPN-Verbindung über Java Netzwerkprogrammierung 4
M HTTP PATCH Request mit Java ausführen Netzwerkprogrammierung 2
Niggo_ Probleme mit Java Mail Netzwerkprogrammierung 14
Aruetiise Socket Java Programm auf Server Netzwerkprogrammierung 3
L FTP Java Interpreter unterbindet SSL Handshake Netzwerkprogrammierung 2
C IFrame mit java auslesen Netzwerkprogrammierung 1
A FTP wie kann ich von java auf datei in fpt://192.168.178.1 lesen/schreiben? Netzwerkprogrammierung 3
C Datensammlung mit Java RMI Netzwerkprogrammierung 0
K Java Jsoup : OnLoad Netzwerkprogrammierung 0
Carres HTTP Vorhandenen Session-ID Cookie von Firefox, Chrome oder IE in Java verwenden Netzwerkprogrammierung 2
B Java+Grbl: G-Code Befehle mit Java an Arduino senden und lesen Netzwerkprogrammierung 1
Z HTTP HTML Element auslesen in Java Netzwerkprogrammierung 1
T Socket Java Programm hängt sich auf bei dem versuch von einem Socket scanner Daten zu erhalten. Netzwerkprogrammierung 1
Thallius HTTP HTTPS unter Java 1.6 schlägt fehl Netzwerkprogrammierung 4
Thallius Java Application über ZScaler benutzer? Netzwerkprogrammierung 0
C java.net.ConnectException: Operation timed out? Netzwerkprogrammierung 2
M Java Eingabe auf FTP Server übergeben Netzwerkprogrammierung 4
T curl request in java umwandeln Netzwerkprogrammierung 4
M Socket Java Server: NullPointerException Netzwerkprogrammierung 4
J Java Server empfängt php inhalt nicht Netzwerkprogrammierung 1
I Socket Kommunikation C / Java Netzwerkprogrammierung 2
H Machbarkeitsfrage: TCP/IP Client (z.B. Netty) für Java Web Applcation Netzwerkprogrammierung 1
L Java RMI Objekt konsistenz Netzwerkprogrammierung 1
H Portforwarding umgehen in Java? Netzwerkprogrammierung 5
D Response in Java Servlet erzeugen Netzwerkprogrammierung 0
X Mit Java eine Applikation auf einem anderen Windows Rechner (Windows Server 2008) starten Netzwerkprogrammierung 1
E HttpUrlConnectionExample cannot be resolved to a type / Java 8 Netzwerkprogrammierung 1
F Socket Java Server mit Android App, Antwort vom Server an App Netzwerkprogrammierung 5
M Java-Programm aus dem Web laden Netzwerkprogrammierung 3
S HTTP-Requeste von Browser mit Java sniffen? Netzwerkprogrammierung 9
J access denied (“java.net.SocketPermission”…) mit Java 8 Netzwerkprogrammierung 1
N CURL requests in Java Netzwerkprogrammierung 6
P Kritische Java-Anwendung und Citrix veröffentlichen Netzwerkprogrammierung 1
F Java Server Scanner oder InputStream kann nicht gelsesen werden! Netzwerkprogrammierung 6
1 Netty NIO oder Java IO Netzwerkprogrammierung 2
1 Via Java mit WLAN Netzwerken verbinden Netzwerkprogrammierung 5
J Java Service Wrapper Netzwerkprogrammierung 1
K Mit Java ASPX Webseite fern steuern Netzwerkprogrammierung 2
H Socket Java | Server sendet Nachricht nur wenn vorher eine JOptionPane-Nachricht ausgegeben wurde. Netzwerkprogrammierung 2
K Emailsenden via Java Applikation Netzwerkprogrammierung 5
L Mit Java über PHP in MySQL anmelden (Login script) Netzwerkprogrammierung 3
P PHP Script per Java ausführen Netzwerkprogrammierung 2
P PPTP Protokoll für JAVA Netzwerkprogrammierung 14
T php/java-bridge Netzwerkprogrammierung 16
D Webseite(mit JavaScript-Element) mit Java auslesen Netzwerkprogrammierung 0
G Multiple Clients and one Server --> java.lang.NullPointerException Netzwerkprogrammierung 1
E Java Server übers Internet erreichen Netzwerkprogrammierung 4
D Socket Error: java.lang.NullPointerException Netzwerkprogrammierung 1

Ähnliche Java Themen

Neue Themen


Oben