Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 7402 in orxonox.OLD for branches/network/src/lib


Ignore:
Timestamp:
Apr 27, 2006, 5:06:47 PM (19 years ago)
Author:
patrick
Message:

network: server socket adapted

Location:
branches/network/src/lib/network
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/network/src/lib/network/netdefs.h

    r6695 r7402  
    2828} NodeType;
    2929
     30typedef enum ConnectionType {
     31  NET_UDP = 0,
     32  NET_TCP
     33};
     34
    3035
    3136typedef enum {
  • branches/network/src/lib/network/server_socket.cc

    r6139 r7402  
    2626#include "debug.h"
    2727
    28 ServerSocket::ServerSocket(  )
     28
     29ServerSocket::ServerSocket( ConnectionType connectionType )
    2930{
     31  this->connectionType = connectionType;
    3032  init();
    3133}
    3234
    33 ServerSocket::ServerSocket( unsigned int port )
     35
     36ServerSocket::ServerSocket( ConnectionType connectionType, unsigned int port )
    3437{
     38  this->connectionType = connectionType;
    3539  init();
    3640  listen(port);
    3741}
     42
     43
     44ServerSocket::ServerSocket()
     45{
     46  this->connectionType == NET_TCP;
     47  init();
     48}
     49
     50
     51ServerSocket::ServerSocket( unsigned int port )
     52{
     53  this->connectionType == NET_TCP;
     54  init();
     55  listen(port);
     56}
     57
    3858
    3959/**
     
    4969  _isListening = false;
    5070}
     71
     72
     73
    5174
    5275void ServerSocket::init( )
     
    97120  }
    98121
    99   listenSocket = SDLNet_TCP_Open(&ip);
    100 
    101   if (!listenSocket)
     122  if( this->connectionType == NET_TCP)
    102123  {
    103     PRINTF(1)("SDLNet_TCP_Open: %s\n", SDLNet_GetError());
     124    listenSocketTCP = SDLNet_TCP_Open(&ip);
     125    if( !listenSocketTCP) {
     126      PRINTF(1)("SDLNet_TCP_Open: %s\n", SDLNet_GetError());
     127      _isListening = false;
     128      return false;
     129    }
     130  }
     131  else
     132  {
     133    listenSocketUDP = SDLNet_UDP_Open(port);
     134    PRINTF(1)("SDLNet_UDP_Open: %s\n", SDLNet_GetError());
    104135    _isListening = false;
    105136    return false;
    106137  }
     138
    107139
    108140  return true;
     
    110142
    111143
     144/**
     145 *  returns a new NetworkSocket
     146 * @return new socket
     147 */
    112148NetworkSocket* ServerSocket::getNewSocket( )
    113149{
     
    119155  }
    120156
    121   TCPsocket sock = SDLNet_TCP_Accept(listenSocket);
    122 
    123   if ( !sock )
     157  if( this->connectionType == NET_TCP)
    124158  {
    125     return NULL;
     159    TCPsocket sockTCP = SDLNet_TCP_Accept(this->listenSocketTCP);
     160    if( !sockTCP)
     161      return NULL;
     162    else
     163      return new NetworkSocket(sockTCP);
    126164  }
    127165  else
    128166  {
    129     return new NetworkSocket(sock);
     167#warning UDP getNewSocket incomplet
     168//     UDPsocket sockUDP = SDLNet_UDP_Accept(this->listenSocketUDP);
     169//     if( !sockUDP)
     170//       return NULL;
     171
     172//     else
     173//       return new NetworkSocket();
    130174  }
    131175}
    132176
     177
     178/**
     179 * closes the ServerSocket
     180 */
    133181void ServerSocket::close( )
    134182{
  • branches/network/src/lib/network/server_socket.h

    r6981 r7402  
    2424#define _MSECONDS_SLEEP_LISTEN 100
    2525
     26
    2627class ServerSocket : public BaseObject
    2728{
    28   private:
    29     TCPsocket listenSocket;
    30     bool terminateThread;
     29  public:
     30#warning old socket structure
     31    ServerSocket();
     32    ServerSocket(unsigned int port);
    3133
    32     bool _isListening;
     34    ServerSocket(ConnectionType connectionType);
     35    ServerSocket(ConnectionType connectionType, unsigned int port );
     36    virtual ~ServerSocket();
    3337
    34     void init();
    35 
    36   public:
    37     ServerSocket();
    38     ServerSocket( unsigned int port );
    39     virtual ~ServerSocket();
    4038    bool listen( unsigned int port );
    4139    NetworkSocket* getNewSocket( void );
    4240    void close();
    4341    inline bool isOk(){ return listenSocket!=NULL; }
     42
     43
     44  private:
     45    void init();
     46
     47
     48  private:
     49#warning old socket structure
     50    TCPsocket         listenSocket;
     51
     52    ConnectionType    connectionType;                        //!< the connection type of the socket {TCP,UDP}
     53    TCPsocket         listenSocketTCP;                       //!< tcp socket
     54    UDPsocket         listenSocketUDP;                       //!< udp socket
     55    bool              terminateThread;                       //!< true if thread terminated
     56
     57    bool              _isListening;                          //!< true if listening
     58
     59
    4460};
    4561
Note: See TracChangeset for help on using the changeset viewer.