## php.java.bridge.http
Class SocketContextServer

    java.lang.Object
      php.java.bridge.http.PipeContextServer
          php.java.bridge.http.SocketContextServer

All Implemented Interfaces:
  java.lang.Runnable, IContextServer

    public class SocketContextServer

extends PipeContextServer
implements java.lang.Runnable

This class manages the fallback physical connection for the operating system which doesn't support named pipes, "Windows", or when the System property php.java.bridge.promiscuous is set to true.

When isAvailable() returns true, a server socket bound to the local interface (127.0.0.1) has been created on a port in the range [9267,...,[9367 and will be used for further communication, see response header X_JAVABRIDGE_REDIRECT. If this communication channel is not available either, the PHP clients must continue to send all statements via PUT requests.

It is possible to switch off this server by setting the VM property php.java.bridge.no_socket_server to true, e.g.: -Dphp.java.bridge.no_socket_server=true.

See Also:
  `PipeContextServer`, `ContextServer`

Nested Class Summary

Nested classes/interfaces inherited from interface php.java.bridge.http.IContextServer
`IContextServer.ChannelName`

Constructor Summary
`SocketContextServer(ThreadPool threadPool)` Create a new ContextServer using the ThreadPool.

Method Summary
`void` `destroy()` Destroy the server
`java.lang.String` `getChannelName()` Returns the server port.
`boolean` `isAvailable()` Check if the ContextServer is ready, i.e.
`void` `run()`
`boolean` `start(IContextServer.ChannelName channelName)` Start the runner.

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### SocketContextServer

    public SocketContextServer(ThreadPool threadPool)

  Create a new ContextServer using the ThreadPool.

  Parameters:
    `threadPool` - Obtain runnables from this pool. If null, new threads will be created.

Method Detail

### run

    public void run()

  Specified by:
    `run` in interface `java.lang.Runnable`

### destroy

    public void destroy()

  Destroy the server

  Specified by:
    `destroy` in interface `IContextServer`
  Overrides:
    `destroy` in class `PipeContextServer`

### isAvailable

    public boolean isAvailable()

  Check if the ContextServer is ready, i.e. it has created a server socket.

  Specified by:
    `isAvailable` in interface `IContextServer`
  Overrides:
    `isAvailable` in class `PipeContextServer`
  Returns:
    true if there's a server socket listening, false otherwise.

### getChannelName

    public java.lang.String getChannelName()

  Returns the server port.

  Returns:
    The server port.

### start

    public boolean start(IContextServer.ChannelName channelName)

  Description copied from interface: `IContextServer`
  Start the runner.

  Specified by:
    `start` in interface `IContextServer`
  Overrides:
    `start` in class `PipeContextServer`
  Parameters:
    `channelName` - The channel name