Socketserver

Rocco1979

Grünschnabel
Hallo,

programmiere momentan einen Socketserver. Dieser sollte folgende Aufgabe haben.
1.) Abhören des Ports
2.) Empfang und Speicherung des Request in ein XML File
3.) Senden des Response mit einem XML File
4.) Nach erfolgreicher Response, Empfang der Informationen mit einem XML File
5.) Zurück zu 1.)

Wollte das Ganze so lösen:

Code:
import java.io.*;
import java.net.*;

/**
 * Listen -- ServerSocket and wait for connections. port xxxxx
 */
public class Listen_3 {
	/** The TCP port for the service. */
	public static final int PORT = 49966;
	public BufferedReader in; // Eingabestream
	public PrintWriter out; // Ausgabestream
	public FileWriter fw;

	public static void main(String[] argv) throws IOException {
		ServerSocket sock;
		Socket  clientSock;

           
	    try {
	        sock = new ServerSocket(PORT);
	            clientSock = sock.accept();

	            
	        while (true) {

	            
	        	DataInputStream is = new DataInputStream(clientSock.getInputStream());
	        	File RequestFile = new File("..bin//RequestXML.xml");
	        	FileOutputStream fos = new FileOutputStream(RequestFile);


                int i = 0;
                while ((i = is.read()) != -1) {
                    fos.write(i);
                    fos.flush();
                }
                fos.close();
                is.close();

	        	File ResponseFile = new File("../bin/ResponseXML.xml");
	        	DataOutputStream dos = new DataOutputStream(clientSock.getOutputStream());
	            FileInputStream fis = new FileInputStream(ResponseFile);
                
           
	            int ii = 0;
	            while ((ii = fis.read()) != -1)
	                dos.write(ii);

	            dos.flush();
	            dos.close();
	            fis.close();            
                
	            process(clientSock);
	            
	        }
   
	            
		} catch (IOException e) {
			System.err.println(e);

		
		}
	}


	public void finalize() {
		
		// Schließen der Streams und des Sockets, wenn
		// die Verbindung gelöscht wird wird


		try {
		
			in.close(); // Eingabestream schließen


		}
		
		catch(IOException e) {
		
			e.printStackTrace();

		
		}
			
}
	

	
	/** This would do something with one client. */
	static void process(Socket s) throws IOException {
		System.out.println("Accept from client " + s.getInetAddress());
		// The conversation would be here.
		s.close();
	}
}

Leider funktioniert es nicht, RequestXML wird gespeichert aber der Response wird nicht versendet und daher auch nichts mehr empfangen. Danach wird der Socket Server automatisch beendet.


Wer kann mir helfen.


Gruss
 
Zuletzt bearbeitet:
Zurück