A DiameterPeer may use several acceptors to get connections with other DiameterPeers. If a connection is created, it will be maintained by a communicator.
Definition at line 56 of file Acceptor.java.
Public Member Functions | |
| Acceptor (int port) | |
| Creates a new acceptor. | |
| Acceptor (int port, InetAddress bindAddr, DiameterPeer dp) | |
| Create a new acceptor. | |
| void | startAccepting () |
| Start a acceptor. | |
| void | stopAccepting () |
| Stop a acceptor. | |
| void | run () |
| Accept incoming request, create a communicator which will be associated with a propor Peer in the PeerManager. | |
Public Attributes | |
| DiameterPeer | diameterPeer |
| DiameterPeer API reference. | |
Package Attributes | |
| int | port |
| The port it listens to. | |
| ServerSocket | acceptSocket |
| The socket we are accepting connections on. | |
| InetAddress | acceptAddr |
| The server address we are accepting connections on. | |
Private Member Functions | |
| void | openSocket () |
| void | closeSocket () |
Private Attributes | |
| boolean | accepting = false |
| If it is accepting connections. | |
Static Private Attributes | |
| static final Logger | LOGGER = Logger.getLogger(Acceptor.class) |
| The logger. | |
| static int | backlog = 50 |
| Used to create the listening socket. | |
| static int | so_timeout = 0 |
| SO_TIMEOUT for the socket. | |
| de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.Acceptor | ( | int | port | ) |
Creates a new acceptor.
| port | Port number, at which the DiameterPeer is ready to accept a connection. |
Definition at line 87 of file Acceptor.java.
References de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.openSocket().
00087 { 00088 this.port = port; 00089 this.acceptAddr = null; 00090 openSocket(); 00091 }
| de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.Acceptor | ( | int | port, | |
| InetAddress | bindAddr, | |||
| DiameterPeer | dp | |||
| ) |
Create a new acceptor.
| port | Port number, at which the DiameterPeer is ready to accept a connection. | |
| bindAddr | IP address, at which the DiameterPeer accepts connnection. | |
| dp | DiameterPeer, for which the acceptor is created. |
Definition at line 101 of file Acceptor.java.
References de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.openSocket().
00101 { 00102 this.port = port; 00103 this.acceptAddr = bindAddr; 00104 this.diameterPeer = dp; 00105 openSocket(); 00106 }
| void de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.openSocket | ( | ) | [private] |
Definition at line 108 of file Acceptor.java.
References de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.acceptAddr, de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.acceptSocket, de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.backlog, de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.LOGGER, de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.port, and de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.so_timeout.
Referenced by de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.Acceptor().
00109 { 00110 try { 00111 acceptSocket = new ServerSocket(port,backlog,acceptAddr); 00112 } catch (IOException e) { 00113 LOGGER.error("Acceptor: Error opening socket on port "+port); 00114 e.printStackTrace(); 00115 } 00116 try { 00117 acceptSocket.setSoTimeout(so_timeout); 00118 } catch (SocketException e1) { 00119 LOGGER.error("Acceptor: Error setting SO_TIMEOUT socket of "+so_timeout); 00120 e1.printStackTrace(); 00121 } 00122 }
| void de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.closeSocket | ( | ) | [private] |
Definition at line 124 of file Acceptor.java.
References de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.acceptSocket, de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.LOGGER, and de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.port.
Referenced by de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.run(), and de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.stopAccepting().
00125 { 00126 try { 00127 acceptSocket.close(); 00128 } catch (IOException e) { 00129 LOGGER.error("Acceptor: Error closing socket on port "+port); 00130 e.printStackTrace(); 00131 } 00132 }
| void de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.startAccepting | ( | ) |
Start a acceptor.
A DiameterPeer is ready to accept a connection.
Definition at line 139 of file Acceptor.java.
References de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.accepting.
Referenced by de.fhg.fokus.diameter.DiameterPeer.DiameterPeer.DiameterPeer().
00140 { 00141 accepting = true; 00142 this.start(); 00143 }
| void de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.stopAccepting | ( | ) |
Stop a acceptor.
A DiameterPeer is unable to accept a connection.
Definition at line 149 of file Acceptor.java.
References de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.accepting, de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.closeSocket(), and de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.so_timeout.
Referenced by de.fhg.fokus.diameter.DiameterPeer.DiameterPeer.shutdown().
00150 { 00151 accepting = false; 00152 if (so_timeout==0) 00153 closeSocket(); 00154 }
| void de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.run | ( | ) |
Accept incoming request, create a communicator which will be associated with a propor Peer in the PeerManager.
Definition at line 162 of file Acceptor.java.
References de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.accepting, de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.acceptSocket, de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.closeSocket(), de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.diameterPeer, and de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.LOGGER.
00162 { 00163 Socket clientSocket; 00164 while(accepting){ 00165 try { 00166 clientSocket = acceptSocket.accept(); 00167 } catch (SocketTimeoutException e) { 00168 LOGGER.error("Acceptor: SO_TIMEOUT -> No Connection"); 00169 continue; 00170 } catch (IOException e) { 00171 if (accepting){ 00172 LOGGER.error("Acceptor: I/O Error on accept"); 00173 e.printStackTrace(); 00174 } 00175 break; 00176 } 00177 LOGGER.debug("Acceptor: Connection Accepted"); 00178 Communicator r = new Communicator(clientSocket,diameterPeer,Communicator.Receiver); 00179 } 00180 closeSocket(); 00181 }
final Logger de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.LOGGER = Logger.getLogger(Acceptor.class) [static, private] |
The logger.
Definition at line 59 of file Acceptor.java.
Referenced by de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.closeSocket(), de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.openSocket(), and de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.run().
DiameterPeer API reference.
Definition at line 62 of file Acceptor.java.
Referenced by de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.run().
The port it listens to.
Definition at line 65 of file Acceptor.java.
Referenced by de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.closeSocket(), and de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.openSocket().
ServerSocket de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.acceptSocket [package] |
The socket we are accepting connections on.
Definition at line 68 of file Acceptor.java.
Referenced by de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.closeSocket(), de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.openSocket(), and de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.run().
InetAddress de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.acceptAddr [package] |
The server address we are accepting connections on.
Definition at line 71 of file Acceptor.java.
Referenced by de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.openSocket().
boolean de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.accepting = false [private] |
If it is accepting connections.
Definition at line 74 of file Acceptor.java.
Referenced by de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.run(), de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.startAccepting(), and de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.stopAccepting().
int de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.backlog = 50 [static, private] |
Used to create the listening socket.
Definition at line 77 of file Acceptor.java.
Referenced by de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.openSocket().
int de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.so_timeout = 0 [static, private] |
SO_TIMEOUT for the socket.
Definition at line 80 of file Acceptor.java.
Referenced by de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.openSocket(), and de.fhg.fokus.diameter.DiameterPeer.transport.Acceptor.stopAccepting().
1.5.2