package com.macfaq.net.www.protocol.finger; import java.net.*; import java.io.*; public class FingerURLConnection extends URLConnection { private Socket connection = null; public final static int DEFAULT_PORT = 79; public FingerURLConnection(URL u) { super(u); } public synchronized InputStream getInputStream() throws IOException { if (!connected) this.connect(); InputStream in = this.connection.getInputStream(); return in; } public String getContentType() { return "text/plain"; } public synchronized void connect() throws IOException { if (!connected) { int port = url.getPort(); if ( port < 1 || port > 65535) { port = DEFAULT_PORT; } this.connection = new Socket(url.getHost(), port); OutputStream out = this.connection.getOutputStream(); String names = url.getFile(); if (names != null && !names.equals("")) { // delete initial / names = names.substring(1); names = URLDecoder.decode(names); byte[] result; try { result = names.getBytes("ASCII"); } catch (UnsupportedEncodingException e) { result = names.getBytes(); } out.write(result); } out.write('\r'); out.write('\n'); out.flush(); this.connected = true; } } }