Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Program Announcements / MikeNet - Multiplayer Plugin

Author
Message
Michael P
18
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 15th Mar 2012 01:06
You can use mn::SetProfileBufferSizes or mn::ChangeBufferSizeTCP.

mn::SetProfileBufferSizes is the most efficient option.

GIDustin
15
Years of Service
User Offline
Joined: 30th May 2008
Location:
Posted: 20th Apr 2012 20:37
Michael:

I know you fixed the error with sending blank strings, but it crept up again today. After narrowing down the problem, I noticed it wasn't a blank string, but a null one:



In this instance, the error still occurs. This one is easily avoided by initializing the strings to "", but I thought I would let you know.
Qqite
14
Years of Service
User Offline
Joined: 28th Feb 2010
Location: Florida, U.S.
Posted: 11th May 2012 06:03 Edited at: 11th May 2012 06:05
Hey Michael it's me again

So I've been loving your plugin. It has worked wonders on my quest for experimental projects.

Recently I've learned of the wonders of multithreading. I've been using the C++0x std::thread for a few tests but nothing big yet. I wanted to make a project where I could make a dynamic server with multiple threads handling different aspects of the server (messages,files in/out, logging events) with your plugin. But I'm having trouble getting VC++2011 Beta to work with it.

I would like to the use the new standard for multithreading but have noticed that you have your own multithreading going on for each connection on the server. Heres my questions:

Have you had any experience getting your api to work with VC++2011?
If not then which multithreading api would you recommend to use in conjunction with VC++2010? Is there anything I need to look out for to not mess up your already defined threads?

Ventures of the worlds around us are limited only by our imagination.
Michael P
18
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 12th May 2012 00:15 Edited at: 12th May 2012 00:17
@ Qqite
Quote: "Have you had any experience getting your api to work with VC++2011?"

No

Quote: "If not then which multithreading api would you recommend to use in conjunction with VC++2010? Is there anything I need to look out for to not mess up your already defined threads?"

I think each individual instance should not operate across multiple threads. Beyond that you should be safe.

I just had a brief read over C++ 11 and I am impressed, seems like we're moving in the right direction! I will look into it in time but for now have no experience with it.

For VC++2010 I would look at boost, been using that lately and its extremely powerful.

What are your issues getting it to work with VC++ 2011? You may need to recompile MikeNet using the VC++ 2011 compiler to make it compatible.

@ GIDustin
Thanks for letting me know. Null is a curious case, you could argue that nothing should be added at all as usually null implies that behavior, or maybe an error should be thrown.

Qqite
14
Years of Service
User Offline
Joined: 28th Feb 2010
Location: Florida, U.S.
Posted: 18th May 2012 08:58
Hey Michael,
I'm having a bit of trouble compiling Boost to that it works in /MT mode. WOuld you happen to know what I might be doing wrong?

When I compile I type this:


This compiles fine and dandy but I have to keep VC++ in /MD for it to work. As soon as I change it to /MT I get this:


Sorry to be such a bother, but I'm crazy wanting to get started on multithreading with MikeNet. xD

Ventures of the worlds around us are limited only by our imagination.
Michael P
18
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 23rd May 2012 22:04
hmmm that is weird, I have no idea I'm afraid! Google is your best bet. Or maybe it is only built to be used with MT.

GIDustin
15
Years of Service
User Offline
Joined: 30th May 2008
Location:
Posted: 24th May 2012 22:24
Michael,

For some reason I am still having problems with empty strings. I have a version you sent via email, "Release v2.0.2 Alpha 5". Is that the latest you have available?

As for null strings, could you have the option to either:

A. Throw an error
B. Send a blank string instead

Something like "mn set null string mode <mode>"
MrValentine
AGK Backer
13
Years of Service
User Offline
Joined: 5th Dec 2010
Playing: FFVII
Posted: 3rd Jun 2012 06:39 Edited at: 3rd Jun 2012 06:42
Hello Michael P

First up, Love the plugin erm so far and umm it was not east finding anything to help me get properly started so hoping out of the 800+ posts on this thread I might find some form of salvation...

I would love to know if there is any proper tutorial as the material coupled along is somewhat all over the place... I have had DN for a good half year or so and heck maybe a year but finally have the time to get around to it and I hope you can point me in some sort of direction...

I want to experiment first to get familiar with building a server > Client system, and if possible a client to client model instead of having the server if possible... if not I am fine with the server client model...

I would then like to fiddle with a communications system by text and also voice...

Hope there is some help on here I have got my head going around in circles from the documentation and can not figure out some aspects...

Please Help... I am usually not this confused...

Thanks in advance

MrV

EDIT

Oh I am beginning in DBPro with this then in later months possibly into C++ or even C# after that...

basjak
14
Years of Service
User Offline
Joined: 16th Apr 2010
Location: feel like signing up for mars
Posted: 3rd Jun 2012 07:21 Edited at: 3rd Jun 2012 07:30
@MrValentine: Dark net is one of the coolest pluggins in DBpro (my opinion at least).
this pluggin offers low level communication base. this gives you very high freedom in choosing your connection type.
Dark net does not show you how to use servers but it allows you to to learn how host an application and then clients will connect to the host computer using manually specified ports.

so, building a server is something and Dark net is something else but, you can combine both together.

My project MultiComps which is sold at intel app store uses Dark net as base communication.(many protocols were involved to make multicomps a fully useful app)

I built many projects using Dark net and you're welcome to ask me any question.

MrValentine
AGK Backer
13
Years of Service
User Offline
Joined: 5th Dec 2010
Playing: FFVII
Posted: 3rd Jun 2012 08:03
Hi basjak buddy fancy meeting you here

heres my early learning just getting my external IP... I managed to get it working however...



whenever I use MN START NAT the documentation says I need to...

Quote: "mnStartNAT
This starts up the UPnP NAT (Universal Plug and Play, Network Address Translation) interface. The NAT interface is used to add, delete and edit port forwarding entries on routers on the network.


mnStartUPNP must be used before this command. "


MN START UPNP does not exist... however I was able to somehow [weird right] figure out I could just remove the command alltogether...

but... now...

Quote: "RESULT$ = MN GET PORT MAP EXTERNAL IP (0)"


requires me to use

Quote: "Port map IDs range from 0 to 1 less than the number of found port maps (returned by mnGetPortMapAmount). "


which again I can not get it to compile or anything... kinda lost in figuring out how to do this the right way when bits are missing and bits are not working inbetween... am i doing anything right or wrong?

thanks in advance

basjak
14
Years of Service
User Offline
Joined: 16th Apr 2010
Location: feel like signing up for mars
Posted: 3rd Jun 2012 17:28
UNPnP is not supported fully with DBpro. yet it works better on C++ but as well not fully supported.

In my opinion ignore UNpnp and look after the rest.

many Dnet-DBpro commands are documented but not supported.

MrValentine
AGK Backer
13
Years of Service
User Offline
Joined: 5th Dec 2010
Playing: FFVII
Posted: 3rd Jun 2012 17:53
some commands are so difficult that I can not figure out whether or not I should use parenthesis ()

I was hoping to create a firewall exception but it looks like that will have to be done manually by the user...

I did however get the get external IP working yay ^^

so how do I go about creating messaging systems and data or voice systems?

is there any tuts somewhere?

thank you so much makes me feel less of a head ache now... I am planning to implement this all into my tech demo and it will be an open source project I will be making a WIP thread of it soon but you can see some of it on my blog so far...

basjak
14
Years of Service
User Offline
Joined: 16th Apr 2010
Location: feel like signing up for mars
Posted: 3rd Jun 2012 18:53
voice commands:

system:


information:


basjak
14
Years of Service
User Offline
Joined: 16th Apr 2010
Location: feel like signing up for mars
Posted: 3rd Jun 2012 18:58
Quote: "I was hoping to create a firewall exception"

if you mean windows fire wall then no, if you mean application fire wall then yes but this is related to the protocol you're creating for your application.

basjak
14
Years of Service
User Offline
Joined: 16th Apr 2010
Location: feel like signing up for mars
Posted: 3rd Jun 2012 19:06
Quote: "I was hoping to create a firewall exception"

if you mean windows fire wall then no, if you mean application fire wall then yes but this is related to the protocol you're creating for your application.

Quote: "so how do I go about creating messaging systems and data or voice systems"

you can do that if your application is running from the server. however the voice system I believe will require you to buy a lot of voice slots to your server which is really expensive. companies like skype and messenger (both are belong to Microsoft) are using very large amount of voice slots.

TGC used to deal with green ear to get us voice slots, this will make your life easier rather than manually do it on your server using Dark net however, Green ear canceled there systems and replace it with something else.

MrValentine
AGK Backer
13
Years of Service
User Offline
Joined: 5th Dec 2010
Playing: FFVII
Posted: 3rd Jun 2012 23:45
for heavens sake

I wrote a long post and now can not be bothered to re qrite it for some reason the forum logged me out after I submitted

kk Green Ear I think needs to be removed alltogether from the store and the next DBP upgrade...

and I think I need to learn to create a net message system in MN and also integrate it into my own game world, I think just one experiment and i should have the grips I need...

I hope someone can help me with a simple tutorial and i can add it to my WIP tech demo...

also umm... yeah thanks again basjak...

can not remember what I wanted or did write anyway im stuck again...

basjak
14
Years of Service
User Offline
Joined: 16th Apr 2010
Location: feel like signing up for mars
Posted: 4th Jun 2012 01:40
Dark net help file comes with an easy tutorial that summaries the use of dnet in games. Don't get much frustrated as you need about 10 days to to get dark net sorted.

Do you have enough knowledge of tcp and udp. Understanding this will make your life easier.

MrValentine
AGK Backer
13
Years of Service
User Offline
Joined: 5th Dec 2010
Playing: FFVII
Posted: 4th Jun 2012 01:46
Aside from cube world... I can not find anything else let alone the help docs...

basjak
14
Years of Service
User Offline
Joined: 16th Apr 2010
Location: feel like signing up for mars
Posted: 4th Jun 2012 04:05 Edited at: 4th Jun 2012 04:11
ok, these are more advanced functions:

host:




client:


MrValentine
AGK Backer
13
Years of Service
User Offline
Joined: 5th Dec 2010
Playing: FFVII
Posted: 4th Jun 2012 04:23
isnt that from the cubeworld example?

MrValentine
AGK Backer
13
Years of Service
User Offline
Joined: 5th Dec 2010
Playing: FFVII
Posted: 4th Jun 2012 05:55
UPDATE

I have been trying to embed the cubeworld code into my tech demo and well... the while endwhile has me perplexed as I need to put that in my do:loop...

anyway I manage to get my app running and then...



basjak
14
Years of Service
User Offline
Joined: 16th Apr 2010
Location: feel like signing up for mars
Posted: 4th Jun 2012 06:15 Edited at: 4th Jun 2012 06:20
functions I gave you are not from the cube world. I made this functions so I can use them everytime.

what have you tried to send?

after you connect the client, use the command(on the client side):

-mn set auto resize TCP instanceno, clientno, autoflag
this command is not documented but i found it when I read the C++ commands library.
use this command if the receiving side is receiving different packet sizes. otherwise the memory gets exhausted and will not allow more incoming messages.

MrValentine
AGK Backer
13
Years of Service
User Offline
Joined: 5th Dec 2010
Playing: FFVII
Posted: 4th Jun 2012 16:23
Quote: "I have been trying to embed the cubeworld code into my tech demo and well... the while endwhile has me perplexed as I need to put that in my do:loop..."


I still can not believe there isnt some form of tutorial in using this and I find the documentation a bit of a frazzle...

is there any updates due?

DN has been around for some time and yet its so doifficult to use? not to mention I paid £40+VAT for it

some more help PLEASE?

I can not see why its this difficult...

basjak
14
Years of Service
User Offline
Joined: 16th Apr 2010
Location: feel like signing up for mars
Posted: 4th Jun 2012 16:36
can you pass the code please.

basjak
14
Years of Service
User Offline
Joined: 16th Apr 2010
Location: feel like signing up for mars
Posted: 4th Jun 2012 16:37
the cube demo is very clear.

can you pass the code please.

MrValentine
AGK Backer
13
Years of Service
User Offline
Joined: 5th Dec 2010
Playing: FFVII
Posted: 4th Jun 2012 17:05
ive just started reading this thread from the beginning, the code is the code in cubeworld sample, the issue I am having is turning it into functions and as I said earlier I am having a difficult time trying to get rid of the while endwhile but can you help me break it into two functions? I realise some bits need setting up before any loop and then theres the looped functions but I can not work it out...

I have not changed any code just tried breaking it into two functions one for prior to my do:loop and one inside it [the while:endwhile]

this is what I did for the stuff before the DO:LOOP [WHILE ENDWHILE]




and this it the function code that I placed inside the DO:LOOP



I realise there are some variables that possibly need to be made into globals and some placed inside parenthesis but as this code is not mine I cant work out what from what and the while endwhile structure is difficult for me to disect...

I am totally new to this, so expect the beginner epic faillness to go along until I get up to speed, thank you again basjak

basjak
14
Years of Service
User Offline
Joined: 16th Apr 2010
Location: feel like signing up for mars
Posted: 4th Jun 2012 17:29
Dnet is easy when you follow the steps:

1- create packets:
sendpacket = mn create packet()
recvpacket = mn create packet()

2- set send packet memory size (you can change it later)
mn set memory size sendpacket,size->DWORD

3- start engine:
mn start noofinstances, noofthreads->better 0

4- create instance profile:
profile = mn create instance profile()
mn set profile local profile,ip$,port,ip$,port
now this command is not important on the client side.
port: every computer or a server have communication ports from 1 to WORD. if you are using normal computer then, you shouldn't worry much which port you choose so put 6789. however if your app is running from a server then you'd better manually configure you free ports this way you make the receiving and sending data faster for the serever.

5- choose your sending type:
mn set profile instane udp profile, mode
mode: 1 : all the sending packets should have the same size. none of them will wait in the receiving queue(very efficient and fast)
2: sending packets don't have to be with the same size. none of them will wait in the receiving queue.
3: packets are ready to wait in the queue but may lost in transmission (half way TCP).
4: the same as mode 3 but more efficient because badly received packets are dicarded.

mn set profile local TCP profile, mode
mode: 1 (default) for normal computers.
0 will disable automatic handshaking. this is used for servers.
you better use UDP mode in computer games. TCP is better used in server that must not loose connection such as filling application forms or waiting for transactions.....

6- start hosting:
repeat until mn start server(instanceno, maxcients,profile) = 0 //0 means server has started correctly.

7- wait for clients:
newclientno = mn client joined(instanceno) // return 0 if no one
joined.
leftclientno = mn client left(instanceno)
put this comand in your game loop.

8- on the client side:
use this function:
repeat until client_connect(IP$,time_out)=1

function client_connect(IP$,time_out)
mn start 1,0
profile=mn create instance profile()
connect=mn connect(0,IP$,portno,IP$,portno,time_out,1,profile)
if connect<>1 then mn delete instance profile profile : mn finish 0 : exitfunction 0
endfunction 1

9- by now you have created server client connection.

10- packets:
if you are sending one message then use TCP packet commands.
if you are sending a lot of messages (in loop), you better use udp packet commands.

basjak
14
Years of Service
User Offline
Joined: 16th Apr 2010
Location: feel like signing up for mars
Posted: 4th Jun 2012 17:34
Quote: " ` Try to connect
profile = mn Create Instance Profile()
Connect = mn Connect(0,ConnectIP$,ConnectPort,ConnectIP$,ConnectPort,Timeout, 1, profile)
"


now follow step number 8 I left you (this way you garantee connection):
Quote: "8- on the client side:
use this function:
repeat until client_connect(IP$,time_out)=1

function client_connect(IP$,time_out)
mn start 1,0
profile=mn create instance profile()
connect=mn connect(0,IP$,portno,IP$,portno,time_out,1,profile)
if connect<>1 then mn delete instance profile profile : mn finish 0 : exitfunction 0
endfunction 1"


basjak
14
Years of Service
User Offline
Joined: 16th Apr 2010
Location: feel like signing up for mars
Posted: 4th Jun 2012 17:40
I will have to go now, by tomorrow, if you couldn't sorted out, I will write you a simple messaging program where you can start from there. and then you can move to 3d positions.

MrValentine
AGK Backer
13
Years of Service
User Offline
Joined: 5th Dec 2010
Playing: FFVII
Posted: 4th Jun 2012 18:47
3d positions is what I need at the moment then a messaging system...

I will have a look at the above after eating something ^^

again thank you

also what is profile there is no explanation of it that I can see...

basjak
14
Years of Service
User Offline
Joined: 16th Apr 2010
Location: feel like signing up for mars
Posted: 4th Jun 2012 20:26 Edited at: 4th Jun 2012 20:28
profile is the protocol that an instance should use. once the profile is created in an instance, you should tell the instance if this profile is TCP or UDP.
you can create many profiles for one instance. (this will be confusing).
in this case for the same instance, you can have a host that uses port 6789 with profile UDP. and for the same host it can use port 6790 with profile TCP.

what is TCP?:


what is UDP?:


where the TCP and UDP are located in my computer?:


why the client should not care about deciding the profile protocol?:


why it is better to use UDP in compuer games?:


so, when I should use TCP?:



wow, I feel like giving private lesson. maybe I should change my job.

MrValentine
AGK Backer
13
Years of Service
User Offline
Joined: 5th Dec 2010
Playing: FFVII
Posted: 4th Jun 2012 21:01
Quote: "so, when I should use TCP?:
+ Code Snippet
use TCP if you are sending one message only. for example you want to tell users to switch to next level or to create something...."


that nailed the above in a single line ...

Quote: "wow, I feel like giving private lesson. maybe I should change my job. "


what do you do? - start a blog!

hmm I am still very lost...

but I understand this much... I send positional data and weapon fire [etc] data using UDP and messages and system commands with TCP... thats engraved in memory now

basjak
14
Years of Service
User Offline
Joined: 16th Apr 2010
Location: feel like signing up for mars
Posted: 4th Jun 2012 23:07
Quote: "what do you do"


I think full time and program during the break.

MrValentine
AGK Backer
13
Years of Service
User Offline
Joined: 5th Dec 2010
Playing: FFVII
Posted: 4th Jun 2012 23:11
in that case can you help me with my tech demo project? I want to make it public...

basjak
14
Years of Service
User Offline
Joined: 16th Apr 2010
Location: feel like signing up for mars
Posted: 5th Jun 2012 00:31
The person who think a lot is the busiest. You're welcome.

MrValentine
AGK Backer
13
Years of Service
User Offline
Joined: 5th Dec 2010
Playing: FFVII
Posted: 5th Jun 2012 00:39
basjak = mysterious

basjak
14
Years of Service
User Offline
Joined: 16th Apr 2010
Location: feel like signing up for mars
Posted: 5th Jun 2012 01:33
I have wall comp waiting for validation at Intel. Two small games at android. Now am thinking about new ideas. But yes am looking for this mysterious idea.

MrValentine
AGK Backer
13
Years of Service
User Offline
Joined: 5th Dec 2010
Playing: FFVII
Posted: 5th Jun 2012 01:35
> e-mail me <

FireIndy
17
Years of Service
User Offline
Joined: 17th Jan 2007
Location: US of A
Posted: 8th Jul 2012 20:26
Hey guys, I've been trying to use this in my game and I've run into a problem. If I run my server, and type in "localhost" to connect to in my game, it a) says the server is full then b) i click on join again and it connects me. Here is the button click event in the game to connect:





RecvPacket and SendPacket are created at the top of the class.

If I try to connect on my laptop to the server running on my desktop (on the same LAN), i get an error:

An error occured in mn:Connect whilst attempting to connect a socket at line 446 of file "NetSocketSimple.cpp" Error code 10051.

I looked up the winsock error number and it says the host is unreachable. The error is instant as well. Doesn't happen after the timeout.

My server starts the server by this:




And the server runs at a constant tickrate. Each 15 ms a thread is created for each of: checking for new players, listening for new messages, and updating the world. At the end of the 15 ms, the thread is interrupted and the process starts over. However, I can't seem to even get a player in, let alone listen for new messages.

FireIndy
17
Years of Service
User Offline
Joined: 17th Jan 2007
Location: US of A
Posted: 9th Jul 2012 05:57
Also, I noticed if I wasn't running the server from within visual studio, and actually launched it from the directory, I never get the server is full from connecting the first time.

However, debugging it with Visual Studio, the client would always tell me first that the server is full, then after trying to connect again, it would work.

Qqite
14
Years of Service
User Offline
Joined: 28th Feb 2010
Location: Florida, U.S.
Posted: 2nd Aug 2012 05:29 Edited at: 4th Aug 2012 10:01
Hello again ,
I've been making outstanding progress with this plugin! I can't wait to show my progress soon. I've pretty much mastered most of the API but I have not touched UDP yet. I plan on using both UDP and TCP in my game. I've looked in the example but it seems to use "operations" which is unclear of how they function. Are these threads that handle UDP message so that it can retrieve as much as it can?

Also, it seems you can use the same operation for multiple clients, is this true? I see there is a mode select function but I do not understand the difference of each mode.

EDIT: Also, I'm about done with DBPro and would love to move to C++ with DarkGDK. Right now I can get MikeNet to work by itself and DarkGDK to work by itself, but not together. DarkGDK requires you to ignore:

Where MikeNet requires you to ignore:


Heres the problem. MikeNet requires you to ignore some libraries that DarkGDK uses. So, how would I get them to work together? I'm trying to avoid dll's as much as possible but that might be because I've never used them. Does anyone know a good way to work around this or is DLL the only way to go? From what I've learned DLLs are very tedious is having to redefine my own functions to copy MikeNet's but I very much could be wrong.

Ventures of the worlds around us are limited only by our imagination.
Michael P
18
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 10th Aug 2012 16:38 Edited at: 10th Aug 2012 16:39
DarkGDK can work with MikeNet, make sure that code generation is set to Multithreaded (MT). There are some included projects which show MikeNet working with DarkGDK.

An explanation of UDP and TCP modes is here:
http://mikenetapicouk1.fatcow.com/class_net_mode.html#a43cfa55ee6a4db66a8d7d6c27f766964

Qqite
14
Years of Service
User Offline
Joined: 28th Feb 2010
Location: Florida, U.S.
Posted: 14th Aug 2012 11:52
I feel like I'm doing this wrong. It seems no one else is having these compiling problems. I must be doing something wrong because I can not, for the life of me, get DarkGDK(v2.0) to work with MikeNet. I can get them both working separately but it always turns out that MikeNet requires some odd libraries to ignore that are always needed by another include. How would I go about using the DLL? I've only seen DLLs used with very weird calls. Is there a way to use the DLL and still get the regular namespaces?

Ventures of the worlds around us are limited only by our imagination.
Qqite
14
Years of Service
User Offline
Joined: 28th Feb 2010
Location: Florida, U.S.
Posted: 15th Aug 2012 12:29 Edited at: 15th Aug 2012 12:30
Oh wow, this is so frustrating.

I got it to work simply by having MikeNet included BEFORE DarkGDK.

So thats fixed but I still cannot get said two plugins to work with boost. For some odd reason I need to #define _DEBUG to have boost work, but whenever I do that, DarkGDK complains. I know this is no longer a MikeNet problem but if anyone knows a solution I would be extremely grateful

Ventures of the worlds around us are limited only by our imagination.
GIDustin
15
Years of Service
User Offline
Joined: 30th May 2008
Location:
Posted: 8th Oct 2012 18:11 Edited at: 8th Oct 2012 20:56
@MichaelP,

You posted some code earlier on how DarkNet can communicate with web servers. I am trying to update that for the new V2.0 commands, but I cannot find the new transfer everything command. Did I miss it or is it called something else now?

http://forum.thegamecreators.com/?m=forum_view&t=153526&b=1&msg=1795133#m1795133



Edit: The above example doesn't actually use the Transfer Everything command, but it won't work without it anyway... The last packet is always missing
Michael P
18
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 15th Oct 2012 12:30
Yeah, so the end of line symbol is what MikeNet is looking for when it passes the packet back to you. In HTTP end of line isn't the only indicator, so essentially HTTP isn't properly supported by MikeNet.

Transfer everything mode will let force MikeNet to pass everything directly to you without changing it in any way, allowing you to implement HTTP handling yourself.

GIDustin
15
Years of Service
User Offline
Joined: 30th May 2008
Location:
Posted: 15th Oct 2012 16:31
Quote: "Transfer everything mode will let force MikeNet to pass everything directly to you without changing it in any way, allowing you to implement HTTP handling yourself."


Yup, that is what I learned with the original version of MikeNet. But, is that still supported in DarkNet 2.0? I could not see the transfer everything command on the commands list.

Any chance you could update the above example to work with the latest version?
MrValentine
AGK Backer
13
Years of Service
User Offline
Joined: 5th Dec 2010
Playing: FFVII
Posted: 15th Oct 2012 20:16
Michael P - I was also wondering if MN can be used to parse or transmit strings to PHP pages... and also how do I transmit say game levels or such data? is it possible at all?

Michael P
18
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 16th Oct 2012 02:16
@ GIDustin
If I recall correctly, I implemented transfer everything as a quick fix but never officially released it. Essentially you should enable it during instance initialization and leave it enabled throughout. Then you need to handle HTTP data transfer, treating it as a stream of TCP data.

I should have a copy of the amended release lying around so drop me a mail and I can forward it to you.

If what you are doing is heavily HTTP based you may be better off with another plugin which has HTTP specific functionality built in.

@ MrValentine
Yes it is possible, you may need the transfer everything mode we are talking about though; I don't know PHP unfortunately so can't help you further. But if you can give me schematics as to what exactly you want to do from a network perspective then I can advise.

MrValentine
AGK Backer
13
Years of Service
User Offline
Joined: 5th Dec 2010
Playing: FFVII
Posted: 16th Oct 2012 03:43
Thanks, in that case...

Quote: "I could not see the transfer everything command on the commands list."


Can you show us some code?

is it possible also for you to assist outside of the forums privately... paid of course...

Login to post a reply

Server time is: 2024-04-20 14:13:53
Your offset time is: 2024-04-20 14:13:53