1. /*
  2. * @(#)DefaultSocketFactoryImpl.java 1.3 04/07/26
  3. *
  4. * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
  5. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
  6. */
  7. package com.sun.corba.se.impl.transport;
  8. import java.io.IOException;
  9. import java.net.InetSocketAddress;
  10. import java.net.Socket;
  11. import java.net.SocketException;
  12. import java.net.ServerSocket;
  13. import java.nio.channels.SocketChannel;
  14. import java.nio.channels.ServerSocketChannel;
  15. import com.sun.corba.se.pept.transport.Acceptor;
  16. import com.sun.corba.se.spi.orb.ORB;
  17. import com.sun.corba.se.spi.transport.ORBSocketFactory;
  18. import com.sun.corba.se.impl.orbutil.ORBConstants;
  19. public class DefaultSocketFactoryImpl
  20. implements ORBSocketFactory
  21. {
  22. private ORB orb;
  23. public void setORB(ORB orb)
  24. {
  25. this.orb = orb;
  26. }
  27. public ServerSocket createServerSocket(String type,
  28. InetSocketAddress inetSocketAddress)
  29. throws IOException
  30. {
  31. ServerSocketChannel serverSocketChannel = null;
  32. ServerSocket serverSocket = null;
  33. if (orb.getORBData().acceptorSocketType().equals(ORBConstants.SOCKETCHANNEL)) {
  34. serverSocketChannel = ServerSocketChannel.open();
  35. serverSocket = serverSocketChannel.socket();
  36. } else {
  37. serverSocket = new ServerSocket();
  38. }
  39. serverSocket.bind(inetSocketAddress);
  40. return serverSocket;
  41. }
  42. public Socket createSocket(String type,
  43. InetSocketAddress inetSocketAddress)
  44. throws IOException
  45. {
  46. SocketChannel socketChannel = null;
  47. Socket socket = null;
  48. if (orb.getORBData().connectionSocketType().equals(ORBConstants.SOCKETCHANNEL)) {
  49. socketChannel = SocketChannel.open(inetSocketAddress);
  50. socket = socketChannel.socket();
  51. } else {
  52. socket = new Socket(inetSocketAddress.getHostName(),
  53. inetSocketAddress.getPort());
  54. }
  55. // Disable Nagle's algorithm (i.e., always send immediately).
  56. socket.setTcpNoDelay(true);
  57. return socket;
  58. }
  59. public void setAcceptedSocketOptions(Acceptor acceptor,
  60. ServerSocket serverSocket,
  61. Socket socket)
  62. throws SocketException
  63. {
  64. // Disable Nagle's algorithm (i.e., always send immediately).
  65. socket.setTcpNoDelay(true);
  66. }
  67. }
  68. // End of file.