Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (c) 2014 "Kaazing Corporation," (www.kaazing.com)
   *
   * This file is part of Robot.
   *
   * Robot is free software: you can redistribute it and/or modify
   * it under the terms of the GNU Affero General Public License as
   * published by the Free Software Foundation, either version 3 of the
   * License, or (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Affero General Public License for more details.
  *
  * You should have received a copy of the GNU Affero General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
 
 package org.kaazing.robot.control;
 
 import java.net.URL;
 
 // note: would be better as part of URLFactory.createURL(String)
 final class TcpURLStreamHandler extends URLStreamHandler {
 
     @Override
     protected URLConnection openConnection(URL locationthrows IOException {
         return new TcpURLConnection(location);
     }
 
     private static final class TcpURLConnection extends URLConnection implements Closeable {
 
         private final Socket socket;
         private final InetSocketAddress endpoint;
 
         public TcpURLConnection(URL locationthrows IOException {
             super(location);
 
             String protocol = location.getProtocol();
             if (!"tcp".equals(protocol)) {
                 throw new IllegalArgumentException("Unrecognized protocol: " + protocol);
             }
 
             String path = location.getPath();
             if (!path.isEmpty()) {
                 throw new IllegalArgumentException("Unexpected path: " + path);
             }
 
             String hostname = location.getHost();
             if (hostname == null || hostname.isEmpty()) {
                 throw new IllegalArgumentException("Expected hostname: " + hostname);
             }
 
             int port = location.getPort();
             if (port == -1) {
                 throw new IllegalArgumentException("Expected port: " + port);
             }
 
              = new Socket();
              = new InetSocketAddress(hostnameport);
         }
 
         @Override
         public void connect() throws IOException {
             .connect();
         }
 
         @Override
         public void setReadTimeout(int timeout) {
             try {
                 .setSoTimeout(timeout);
             }
             catch (SocketException e) {
                 throw new RuntimeException(e);
             }
         }
 
         @Override
         public int getReadTimeout() {
             try {
                 return .getSoTimeout();
             }
             catch (SocketException e) {
                 throw new RuntimeException(e);
             }
         }
 
         @Override
         public InputStream getInputStream() throws IOException {
            return .getInputStream();
        }
        @Override
        public OutputStream getOutputStream() throws IOException {
            return .getOutputStream();
        }
        @Override
        public void close() throws IOException {
            .close();
        }
    }
New to GrepCode? Check out our FAQ X