start of new file
[IRC.git] / Robust / src / ClassLibrary / SocketJava.java
index 55624e1b54bc3998d29d0777c16db64eaf69f234..c2b85418b7799b1e25f72d2d93d38849dd568f70 100644 (file)
@@ -1,19 +1,35 @@
 public class Socket {
     /* File Descriptor */
     int fd;
-    
+    SocketInputStream sin;
+    SocketOutputStream sout;
+
     public Socket() {
+       sin=new SocketInputStream(this);
+       sout=new SocketOutputStream(this);
+    }
+
+    public InputStream getInputStream() {
+       return sin;
+    }
+
+    public OutputStream getOutputStream() {
+       return sout;
     }
 
     public Socket(String host, int port) {
        InetAddress address=InetAddress.getByName(host);
        fd=nativeBind(address.getAddress(), port);
        nativeConnect(fd, address.getAddress(), port);
+       sin=new SocketInputStream(this);
+       sout=new SocketOutputStream(this);
     }
     
     public Socket(InetAddress address, int port) {
        fd=nativeBind(address.getAddress(), port);
        nativeConnect(fd, address.getAddress(), port);
+       sin=new SocketInputStream(this);
+       sout=new SocketOutputStream(this);
     }
 
     public static native int nativeBind(byte[] address, int port);
@@ -28,11 +44,15 @@ public class Socket {
        return nativeRead(b);
     }
     public void write(byte[] b) {
-       nativeWrite(b);
+       nativeWrite(b, 0, b.length);
+    }
+
+    public void write(byte[] b, int offset, int len) {
+       nativeWrite(b, offset, len);
     }
 
     private native int nativeRead(byte[] b);
-    private native void nativeWrite(byte[] b);
+    private native void nativeWrite(byte[] b, int offset, int len);
     private native void nativeClose();
 
     public void close() {