Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/src/lib/network/udp_socket.h @ 9869

Last change on this file since 9869 was 9869, checked in by bensch, 18 years ago

orxonox/trunk: merged the new_class_id branche back to the trunk.
merged with command:
svn merge https://svn.orxonox.net/orxonox/branches/new_class_id trunk -r9683:HEAD
no conflicts… puh..

File size: 1.5 KB
RevLine 
[7540]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
[8802]18enum
19{
20  UDPCMD_DISCONNECT = 1,
21  UDPCMD_INVALIDRNDBYTE = 2
22};
23
[7540]24class UdpSocket : public NetworkSocket
25{
[9869]26  ObjectListDeclaration(UdpSocket);
[7540]27  public:
28    UdpSocket();
[8802]29    UdpSocket( UdpServerSocket * serverSocket, IPaddress ip, int userId, byte randomByte );
[7540]30    UdpSocket( std::string host, int port );
31    virtual ~UdpSocket();
32
33    virtual void connectToServer( std::string host, int port );
34    virtual void disconnectServer();
35
[9406]36    virtual void reconnectToServer( std::string host, int port);
37    virtual void reconnectToServerSoft( std::string host, int port);
38
[8802]39    virtual bool writePacket(byte * data, int length );
[9406]40    virtual int readPacket(byte * data, int maxLength);
[7540]41
[9406]42
[7540]43  private:
[9656]44    void init();
[9406]45
[8802]46    bool writeRawPacket( byte * data, int length );
47    bool checkUdpCmd( byte udpCmd );
48    bool checkRandomByte( byte rndByte );
49    byte generateNewRandomByte();
[9406]50
[7540]51
[9656]52  private:
53    UdpServerSocket * serverSocket;   //!< will get packets here
54    int               userId;         //!< user id used by serverSocket
55    UDPsocket         socket;         //!< socket used to send/recieve
56    UDPpacket *       packet;
57
58    byte              randomByte;     //!< contains random bytes & 0xFC
[7540]59};
60
61
62
63#endif /* _NETWORK_SOCKET */
Note: See TracBrowser for help on using the repository browser.