irrNetLite 2.1 [BETA]
-
- Posts: 46
- Joined: Tue Oct 02, 2007 6:46 am
- Contact:
Well it's pretty small (Just a user-friendly C++ wrapper for enet) so I didn't really consider it.
Come to think of it I should rename this to enet++.
Come to think of it I should rename this to enet++.
ShadowMapping for Irrlicht!: Get it here
Need help? Come on the IRC!: #irrlicht on irc://irc.freenode.net
Need help? Come on the IRC!: #irrlicht on irc://irc.freenode.net
-
- Posts: 117
- Joined: Sat Apr 19, 2008 10:14 am
trouble to compile example1 with code::blocks
I try to compile example one from irrnetlite v2.0 and get linker errors.
What I have done so far is to compile irrnetlite. I got a .a file and set it on the list of project build optons / linker settings / link libraries. At the same place I added libws2_32.a from the code::blocks /lib/
What do I have to add to get the example run?
What I have done so far is to compile irrnetlite. I got a .a file and set it on the list of project build optons / linker settings / link libraries. At the same place I added libws2_32.a from the code::blocks /lib/
What do I have to add to get the example run?
That should be enough. I didn't test with CodeBlocks but I did test with GCC and makefiles so it should work just the same.
I can probably give you some kind of a hint if you tell me what the linker errors were.
I can probably give you some kind of a hint if you tell me what the linker errors were.
ShadowMapping for Irrlicht!: Get it here
Need help? Come on the IRC!: #irrlicht on irc://irc.freenode.net
Need help? Come on the IRC!: #irrlicht on irc://irc.freenode.net
-
- Posts: 117
- Joined: Sat Apr 19, 2008 10:14 am
That's niceBlindSide wrote: I can probably give you some kind of a hint if you tell me what the linker errors were.
Code: Select all
..\..\..\..\irrNetLite\irrNetLite\lib.a(peer.o):peer.c:(.text+0x597)||undefined reference to `_htonl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(peer.o):peer.c:(.text+0x70b)||undefined reference to `_htonl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(peer.o):peer.c:(.text+0x999)||undefined reference to `_htonl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(peer.o):peer.c:(.text+0xc0b)||undefined reference to `_htonl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(peer.o):peer.c:(.text+0xd6e)||undefined reference to `_htonl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(peer.o):peer.c:(.text+0xe8d)||undefined reference to `_ntohl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(peer.o):peer.c:(.text+0xf32)||undefined reference to `_htonl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(peer.o):peer.c:(.text+0xf7a)||undefined reference to `_htonl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(peer.o):peer.c:(.text+0x1015)||undefined reference to `_htonl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(peer.o):peer.c:(.text+0x1023)||undefined reference to `_htonl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(peer.o):peer.c:(.text+0x1031)||undefined reference to `_htonl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(peer.o):peer.c:(.text+0x12a3)||undefined reference to `_ntohl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0xf3)||undefined reference to `_htonl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0x38c)||undefined reference to `_htonl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0x39d)||undefined reference to `_htonl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0x3ae)||undefined reference to `_htonl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0x675)||undefined reference to `_htonl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0x755)||undefined reference to `_htons@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0x77a)||undefined reference to `_htonl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0xb50)||undefined reference to `_ntohs@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0xb6b)||undefined reference to `_ntohl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0xc63)||undefined reference to `_ntohl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0xcaa)||undefined reference to `_ntohl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0xd61)||undefined reference to `_ntohl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0xd78)||undefined reference to `_ntohl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0xda7)||undefined reference to `_ntohs@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0xdc0)||undefined reference to `_ntohs@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0xdf6)||undefined reference to `_ntohl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0xe28)||undefined reference to `_ntohl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0xe3f)||undefined reference to `_ntohl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0xf19)||undefined reference to `_ntohl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0xf30)||undefined reference to `_ntohl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0x17e4)||undefined reference to `_ntohs@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0x17f6)||undefined reference to `_ntohl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0x1807)||undefined reference to `_ntohl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0x1818)||undefined reference to `_ntohl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0x1829)||undefined reference to `_ntohl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0x183a)||undefined reference to `_ntohl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0x18b6)||undefined reference to `_ntohs@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0x1934)||undefined reference to `_ntohl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0x196f)||undefined reference to `_htons@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0x1985)||undefined reference to `_htons@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0x1994)||undefined reference to `_htonl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0x19a8)||undefined reference to `_htonl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0x19bc)||undefined reference to `_htonl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0x19cf)||undefined reference to `_htonl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0x19e0)||undefined reference to `_htonl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(protocol.o):protocol.c:(.text+0x1b51)||undefined reference to `_ntohl@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(host.o):host.c:(.text+0x318)||undefined reference to `_htons@4'|
..\..\..\..\irrNetLite\irrNetLite\lib.a(host.o):host.c:(.text+0x32e)||undefined reference to `_htons@4'|
||More errors follow but not being shown.|
||Edit the max errors limit in compiler options...|
||=== Build finished: 50 errors, 0 warnings ===|
Those really look like you are not linking libws2_32.a correctly, those functions are found in winsock2.h.
Can you make sure that WIN32 is defined when compiling irrNetLite? The makefile I included is for Linux and doesn't have this by default. There's a chance that it's trying to use the POSIX equivalent.
Can you make sure that WIN32 is defined when compiling irrNetLite? The makefile I included is for Linux and doesn't have this by default. There's a chance that it's trying to use the POSIX equivalent.
ShadowMapping for Irrlicht!: Get it here
Need help? Come on the IRC!: #irrlicht on irc://irc.freenode.net
Need help? Come on the IRC!: #irrlicht on irc://irc.freenode.net
-
- Posts: 117
- Joined: Sat Apr 19, 2008 10:14 am
-
- Posts: 117
- Joined: Sat Apr 19, 2008 10:14 am
this prog crashes
but when I use
(std::string instead of core::stringc)
it works fine. why?
Code: Select all
#include <irrlicht.h>
#include <irrNet.h>
#include <iostream>
using namespace irr;
using namespace std;
class TEClientNetCallback : public net::INetCallback
{
public:
// Our handlePacket function.
virtual void handlePacket(net::SInPacket& packet)
{
// Very simple callback, just echo what the server says.
core::stringc message;
packet >> message;
cout << message.c_str() << endl;
}
};
int initServer()
{
TEClientNetCallback* TEclientCallback = new TEClientNetCallback();
net::INetManager* TEnetManager = net::createIrrNetClient(TEclientCallback, "127.0.0.1");
if(TEnetManager->getConnectionStatus() != net::EICS_FAILED)
{
string message;
message="I send this for the while. Say welcome";
// Send a packet with the message entered.
net::SOutPacket packet;
packet << message;
TEnetManager->sendOutPacket(packet);
}
net::SOutPacket packet;
while(TEnetManager->getConnectionStatus() != net::EICS_FAILED)
{
TEnetManager->update(100);
}
// Clean up.
delete TEnetManager;
delete TEclientCallback;
return 0;
}
int main()
{
initServer();
}
Code: Select all
class TEClientNetCallback : public net::INetCallback
{
public:
// Our handlePacket function.
virtual void handlePacket(net::SInPacket& packet)
{
// Very simple callback, just echo what the server says.
std::string message;
packet >> message;
cout << message.c_str() << endl;
}
};
it works fine. why?
EDIT: NVM, some #ifndefs and a separate makefile target did the trick.
Firstly, what a great addon to irrlicht!
Secondly, I am using the JUCE framework along with irrnetlite, both making use of zlib. This apparently leads to some 'redefinitions' while linking.
So I am asking: is there a (comfortable) way to compile irrnetlite w/o zlib - or is there even a better solution?
Thanks and a happy new year,
p.
Firstly, what a great addon to irrlicht!
Secondly, I am using the JUCE framework along with irrnetlite, both making use of zlib. This apparently leads to some 'redefinitions' while linking.
So I am asking: is there a (comfortable) way to compile irrnetlite w/o zlib - or is there even a better solution?
Thanks and a happy new year,
p.
beer->setMotivationCallback(this);
Hi,
there are some possible improvements for irrNetLite:
-keep zlib as an standalone project will make reuse a bit easier. Had to hack your #include "zlib/zlib.h" -> "zlib.h" and adding ../include/zlib to the projectfile would be better
-your enet version seems to be outdated
-there is a little memleak in the setUpClient method. You missed to destroy the packet under some circumstances.
EDIT:
Furthermore the clients are not really kind. They miss to disconnect themself properly from the server. This may help (has to be placed in the dtor of CNetManager):
there are some possible improvements for irrNetLite:
-keep zlib as an standalone project will make reuse a bit easier. Had to hack your #include "zlib/zlib.h" -> "zlib.h" and adding ../include/zlib to the projectfile would be better
-your enet version seems to be outdated
-there is a little memleak in the setUpClient method. You missed to destroy the packet under some circumstances.
EDIT:
Furthermore the clients are not really kind. They miss to disconnect themself properly from the server. This may help (has to be placed in the dtor of CNetManager):
Code: Select all
if(mode == ENM_CLIENT)
{
ENetEvent event;
enet_peer_disconnect(peer, 0);
enet_host_service(host, &event, 0);
}
Thanks for the suggestions Nox, noted. I may rename this library to enet++ if I have the time for another release.
ShadowMapping for Irrlicht!: Get it here
Need help? Come on the IRC!: #irrlicht on irc://irc.freenode.net
Need help? Come on the IRC!: #irrlicht on irc://irc.freenode.net
Hello,
I have implemented network support for my current project "marbles2" (http://irrlicht.sourceforge.net/phpBB2/ ... hp?t=35215) and with some changes to Irrnetlite it works fine. I just have 2 issues:
- the dynamically allocated buffer makes the program crash on packet destruction. I solved it by changing the dynamic buffer to a static buffer with 4kb size (way more than I need), but maybe someone has an idea or solution.
- whenever I create a server or client for the second time the program crashes. The debugger confuses me: the crash happens when the constructor returns.
I'll try to make a small text-application that reproduces the problem. One note: I am using gcc (the one that came with code::blocks) and Irrlicht 1.6.
I have implemented network support for my current project "marbles2" (http://irrlicht.sourceforge.net/phpBB2/ ... hp?t=35215) and with some changes to Irrnetlite it works fine. I just have 2 issues:
- the dynamically allocated buffer makes the program crash on packet destruction. I solved it by changing the dynamic buffer to a static buffer with 4kb size (way more than I need), but maybe someone has an idea or solution.
- whenever I create a server or client for the second time the program crashes. The debugger confuses me: the crash happens when the constructor returns.
I'll try to make a small text-application that reproduces the problem. One note: I am using gcc (the one that came with code::blocks) and Irrlicht 1.6.
Dustbin::Games on the web: https://www.dustbin-online.de/
Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
Is it possible that you are using different irrArray, etc implementations for irrNetLite and Irrlicht? I think this shouldn't be an issue if you have USE_IRRLICHT defined but just in case. I have heard some reports of crashes here and there so I would be interested in your test application.
@Nox PM: It's just thought for the future, I don't think I will do this anytime soon.
@Nox PM: It's just thought for the future, I don't think I will do this anytime soon.
ShadowMapping for Irrlicht!: Get it here
Need help? Come on the IRC!: #irrlicht on irc://irc.freenode.net
Need help? Come on the IRC!: #irrlicht on irc://irc.freenode.net