Transform FileSender in a server
authorDa Risk <darisk972@gmail.com>
Thu, 12 Mar 2009 23:45:49 +0100
changeset 11 20a2c2b04060
parent 10 d26672ed3763
child 12 c9ff263c29ad
Transform FileSender in a server
src/com/beem/project/beem/jingle/FileSender.java
--- a/src/com/beem/project/beem/jingle/FileSender.java	Thu Mar 12 23:26:27 2009 +0100
+++ b/src/com/beem/project/beem/jingle/FileSender.java	Thu Mar 12 23:45:49 2009 +0100
@@ -7,24 +7,29 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+
+import java.net.InetAddress;
+import java.net.ServerSocket;
 import java.net.Socket;
+import java.net.UnknownHostException;
 
 public class FileSender extends Thread {
-    private String dest;
     private int port;
     private boolean started = false;
     private String filename;
+    private InetAddress local_addr;
 
-    public FileSender(String dest, int port, String file){
-	this.dest = dest;
+    public FileSender(String listenAddr,  int port, String file) throws UnknownHostException{
 	this.port = port;
 	this.filename = file;
+	this.local_addr = InetAddress.getByName(listenAddr);
     }
 
     public void run(){
 	try {
+	    ServerSocket ssock = new ServerSocket(port, 50, local_addr);
 	    InputStream in = new BufferedInputStream(new FileInputStream(filename));
-	    Socket sock = new Socket(dest, port);
+	    Socket sock = ssock.accept();
 	    OutputStream out = new BufferedOutputStream(sock.getOutputStream());
 
 	    try {
@@ -46,11 +51,13 @@
 		    out.close();
 		if (sock != null)
 		    sock.close();
+		if (ssock != null)
+		    ssock.close();
 	    }
 	} catch (FileNotFoundException e){
 	    System.err.println("Impossible d'ouvrir " + filename +" " + e.getLocalizedMessage());
 	} catch (IOException e) {
-	    System.err.println("Imposible de se connecter a " + dest + " " + e.getLocalizedMessage());
+	    System.err.println("I/O Error " + e.getLocalizedMessage());
 	}
     }
 
@@ -58,8 +65,8 @@
 	started = false;
     }
 
-    public static void main(String args[]) throws InterruptedException {
-	FileSender fs = new FileSender("localhost", 4242, "/tmp/img.jpeg");
+    public static void main(String args[]) throws InterruptedException, UnknownHostException {
+	FileSender fs = new FileSender("127.0.0.1" ,4242, "/tmp/img.jpeg");
 	fs.start();
 	fs.join();
     }