Aktuelle Zeit: 27.04.2024, 13:13

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Problem mit RakNet
BeitragVerfasst: 08.01.2010, 00:12 
Offline

Registriert: 14.08.2009, 13:56
Beiträge: 17
Gleich vorneweg,
ich weiß, das hier ist das Irrlicht Forum und nicht das RakNet Forum, aber leider gibt es zu RakNet kein deutsches Forum und da ich gut englische Texte lesen aber nicht schreiben kann, richte ich mich mit folgender Frage an euch(ist sowieso eher was Compiler spezifisches glaube ich).
Ich versuche mit folgendem Code einen String per BitStream zuversenden(der Code ist noch nicht fertig, müste aber theoretisch einwandfrei funktionieren):

Code:
#include <stdio.h>
#include <string.h>
#include "RakNetworkFactory.h"
#include "RakPeerInterface.h"
#include "MessageIdentifiers.h"
#include "BitStream.h"

using namespace RakNet;

#define MAX_CLIENTS 10
#define SERVER_PORT 60000

RakPeerInterface *peer;
bool isServer;

int main(void)
{
   char str[512];
   char message[512];
   bool quit = false;
   Packet *packet;

   peer = RakNetworkFactory::GetRakPeerInterface();
   BitStream bitStream;

   printf("(C) or (S)erver?\n");
   gets(str);
   if ((str[0]=='c')||(str[0]=='C'))
   {
      peer->Startup(1,30,&SocketDescriptor(), 1);
      isServer = false;
   } else {
      peer->Startup(MAX_CLIENTS, 30, &SocketDescriptor(SERVER_PORT,0), 1);
      isServer = true;
   }

   if (isServer)
   {
      printf("Starting the server.\n");
      // We need to let the server accept incoming connections from the clients
      peer->SetMaximumIncomingConnections(MAX_CLIENTS);
   } else {
      printf("Enter server IP or hit enter for 127.0.0.1\n");
      gets(str);
      if (str[0]==0){
         strcpy(str, "127.0.0.1");
      }
      printf("Starting the client.\n");
      peer->Connect(str, SERVER_PORT, 0,0);
   }
   while(quit == false) {
      printf("Press Q for quit or an other key to run the Programm.\n");
      gets(str);
      if ((str[0]=='q')||(str[0]=='Q'))
      {
         quit = true;
      }
      
      
      printf("Enter a string to show on the Server/Client:");
      gets(message);
      bitStream.Write(message);
      peer->Send(BitStream * bitStream,HIGH_PRIORITY,RELIABLE,0,UNASSIGNED_SYSTEM_ADDRESS,true);
      //peer->Send( const RakNet::BitStream * bitStream, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast )=0;
      
   }

   
   RakNetworkFactory::DestroyRakPeerInterface(peer);

   return 0;
}

Bei dieser Zeile: peer->Send(BitStream * bitStream,HIGH_PRIORITY,RELIABLE,0,UNASSIGNED_SYSTEM_ADDRESS,true);
bekomme ich aber diesen Error: error C2275: 'RakNet::BitStream': Ungültige Verwendung dieses Typs als Ausdruck

Hat jemand eine Idee was der Compiler für ein Problem hat?


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Problem mit RakNet
BeitragVerfasst: 08.01.2010, 07:55 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
O.o

Warum gibts du den Typ der Variable bei einem Funktionsaufruf an wenn da kein cast ist?
Lass das BitStream* weg und fertig...

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Problem mit RakNet
BeitragVerfasst: 08.01.2010, 11:22 
Offline

Registriert: 14.08.2009, 13:56
Beiträge: 17
Mhh..
Klingt logisch, wenn ich aber
Code:
#include <stdio.h>
#include <string.h>
#include "RakNetworkFactory.h"
#include "RakPeerInterface.h"
#include "MessageIdentifiers.h"
#include "BitStream.h"

using namespace RakNet;

#define MAX_CLIENTS 10
#define SERVER_PORT 60000

// Moved out of main - needs global scope
RakPeerInterface *peer;
bool isServer;

int main(void)
{
   char str[512];
   char message[512];
   bool quit = false;
   Packet *packet;

   peer = RakNetworkFactory::GetRakPeerInterface();
   BitStream bitStream;

   printf("(C) or (S)erver?\n");
   gets(str);
   if ((str[0]=='c')||(str[0]=='C'))
   {
      peer->Startup(1,30,&SocketDescriptor(), 1);
      isServer = false;
   } else {
      peer->Startup(MAX_CLIENTS, 30, &SocketDescriptor(SERVER_PORT,0), 1);
      isServer = true;
   }

   if (isServer)
   {
      printf("Starting the server.\n");
      // We need to let the server accept incoming connections from the clients
      peer->SetMaximumIncomingConnections(MAX_CLIENTS);
   } else {
      printf("Enter server IP or hit enter for 127.0.0.1\n");
      gets(str);
      if (str[0]==0){
         strcpy(str, "127.0.0.1");
      }
      printf("Starting the client.\n");
      peer->Connect(str, SERVER_PORT, 0,0);
   }
   while(quit == false) {
      printf("Press Q for quit or an other key to run the Programm.\n");
      gets(str);
      if ((str[0]=='q')||(str[0]=='Q'))
      {
         quit = true;
      }
         
      printf("Enter a string to show on the Server/Client:");
      gets(message);
      bitStream.Write(message);
      peer->Send(bitStream,HIGH_PRIORITY,RELIABLE,0,UNASSIGNED_SYSTEM_ADDRESS,true);
      //virtual bool Send( const RakNet::BitStream * bitStream, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast )=0;
      
   }

   
   RakNetworkFactory::DestroyRakPeerInterface(peer);

   return 0;
}

compiliere bekomme ich diese Fehlermeldung, die ich leider auch nicht verstehe:

error C2664: 'bool RakPeerInterface::Send(const RakNet::BitStream *,PacketPriority,PacketReliability,char,const AddressOrGUID,bool)': Konvertierung des Parameters 1 von 'RakNet::BitStream' in 'const RakNet::BitStream *' nicht möglich
Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden

(Auch in der Zeile wie zuvor).


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Problem mit RakNet
BeitragVerfasst: 08.01.2010, 11:47 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
Die Funktion erwartet einen Pointer auf einen BitStream und nicht einen BitStream selber, also einfach ein & davor.

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Problem mit RakNet
BeitragVerfasst: 08.01.2010, 12:00 
Offline

Registriert: 14.08.2009, 13:56
Beiträge: 17
Vielen Dank :D :D , funktioniert!!!!!!!

Man war ich blöd............


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Problem mit RakNet
BeitragVerfasst: 14.01.2010, 21:15 
Offline

Registriert: 14.08.2009, 13:56
Beiträge: 17
Ich probiere weiter fleißig mit RakNet etwas auf die Beine zustellen, habe aber immer wieder Probleme.
Da ich das Forum nicht mit diesen Problemmen zuspammen will, wollte ich fragen ob es hier jemanden gibt der schon ein bischen Erfahrung mit RakNet hat und mir als Mentor beistehen könnte??

MFG Shades


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Problem mit RakNet
BeitragVerfasst: 14.01.2010, 21:40 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
Naja hab ein wenig was mit 2 gemacht. Mit 3 hab ich mich noch nicht wirklich auseinander gesetzt. Aber das Forum ist dafür da, um Probleme zu lösen ;)

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Problem mit RakNet
BeitragVerfasst: 14.01.2010, 21:56 
Offline

Registriert: 14.08.2009, 13:56
Beiträge: 17
Meinst du mit 2 und 3 das Reales von RakNet??


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Problem mit RakNet
BeitragVerfasst: 15.01.2010, 09:40 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
Jo

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de