Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/proxy/src/lib/network/udp_socket.h @ 9653

Last change on this file since 9653 was 9653, checked in by patrick, 18 years ago

some more smaller works:

  • fixed a bug preventing clients/proxies to connect to server
  • started an implementation of a soft-reconnection
  • fixed a bug preventing more than one proxy to connect to a ms
File size: 1.5 KB
Line 
1/*!
2 * @file upd_socket.h
3 *  class to connect to other clients via udp
4 */
5
6#ifndef _UDP_SOCKET
7#define _UDP_SOCKET
8
9/* include this file, it contains some default definitions */
10#include "netdefs.h"
11
12
13/* include base_object.h since all classes are derived from this one */
14#include "network_socket.h"
15
16class UdpServerSocket;
17
18enum
19{
20  UDPCMD_DISCONNECT = 1,
21  UDPCMD_INVALIDRNDBYTE = 2
22};
23
24class UdpSocket : public NetworkSocket
25{
26  public:
27    UdpSocket();
28    UdpSocket( UdpServerSocket * serverSocket, IPaddress ip, int userId, byte randomByte );
29    UdpSocket( std::string host, int port );
30    virtual ~UdpSocket();
31
32    virtual void connectToServer( std::string host, int port );
33    virtual void disconnectServer();
34
35    virtual void reconnectToServer( std::string host, int port);
36    virtual void reconnectToServerSoft( std::string host, int port);
37
38    virtual bool writePacket(byte * data, int length );
39    virtual int readPacket(byte * data, int maxLength);
40
41
42  private:
43    void init();
44
45    bool writeRawPacket( byte * data, int length );
46    bool checkUdpCmd( byte udpCmd );
47    bool checkRandomByte( byte rndByte );
48    byte generateNewRandomByte();
49
50
51  private:
52    UdpServerSocket * serverSocket;   //!< will get packets here
53    int               userId;         //!< user id used by serverSocket
54    UDPsocket         socket;         //!< socket used to send/recieve
55    UDPpacket *       packet;
56
57    byte              randomByte;     //!< contains random bytes & 0xFC
58};
59
60
61
62#endif /* _NETWORK_SOCKET */
Note: See TracBrowser for help on using the repository browser.