[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 746
  • Last Modified:

Example of IPC in VC++ .Net

Hello all,

I have an assignment to make a board game in VC++ .Net  , I am required to make GUI and create 3 processes Master, player1 and player2....

I have been looking online for IPC and have found some examples but all went over the top of my head....

I would appreciate if someone could give me an example explaining...

create process ( i.e. initialize player1 from master )
pass data ( structure ) to player1
receive feedback from player1
pass data to player2 ( it has already been initialized before i.e after player1)
receive feedback from player2
pass data to player1( what will happen to player1 in the mean time? )

Thanks a lot
0
hatimad
Asked:
hatimad
  • 4
  • 3
  • 2
1 Solution
 
Svetlin_PanayotovCommented:
http://www.codeproject.com/internet/renju.asp
This sample contains at least some base classes that could help you.It's direct connection - but with just few modifications in CListenSocket and CClientSocket you can use it for your game.

Svetlin
0
 
Svetlin_PanayotovCommented:
Oh...and another - from CodeProject again http://www.codeproject.com/internet/WinBattleArticle.asp
0
 
nonubikCommented:
IPC does not resume only to socket communications. There are also pipes, mapped files, mailslots, rpc, etc.
A good sample to start is http://www.codeproject.com/threads/ipcworkshop.asp . It explains 5 of the IPCs: clipboard, file mapping, mailslots, named pipes and sockets.
0
Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

 
nonubikCommented:
0
 
hatimadAuthor Commented:
Thanks for your comments, I will go through the links and get back
0
 
hatimadAuthor Commented:
ok,

I tried those links but all of them seems to have one or other problem first 2 are too complicated and almost all has problems compiling on .net 2002.

I found this link

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/creating_named_shared_memory.asp 

which has working example.

But the problem now is, when I try to modify it to use structure, it gives me errors....

could anyone please show me an example with simple structure in it?

like how do I implement this structure insted of text?

struct {
      int MsgNo;
      String Msg;
}

Thank you
0
 
nonubikCommented:
Having

typedef struct _Msg {
      int MsgNo;
      char *Msg;
}MSG;

MSG MyMessage;

//fill it
.....
//first process

CopyMemory((PVOID)pBuf, (void *)&MyMessage, sizeof(MyMessage.MsgNo) + strlen(MyMessage.Msg));


//second process
void *pBuf
 pBuf = MapViewOfFile(hMapFile,    // handle to mapping object
               FILE_MAP_ALL_ACCESS,  // read/write permission
               0,                    
               0,                    
               BUF_SIZE);      

MSG MyMessage;

strncpy(&(MyMessage.MsgNo), (char *)pBuf, sizeof(iMsgNo));
MyMessage.Msg = new char[strlen((char*)(pBuf+sizeof(int)))];
strcpy(MyMessage.Msg, (char*)(pBuf+sizeof(int)));

The idea is that you must know the length of the buffer that is passed between the 2 processes, both on sending and on receiving.
0
 
hatimadAuthor Commented:
Hello,

Thanks for the example, I have got the shared meomory part working just like you have pointed out.

At the moment, after I map data from process1 to memory file, I have to manually start using data in process 2

How do I inform process 2 to start using the data after process 1 has copied it to the memory file autmetically??

0
 
nonubikCommented:
You can create a mutex to synchronize the processes. The first process creates a mutex after it writes to mapped file. The second proces tries to open the mutex. It will only succeed after the mutex was created. See "Using Named Objects" for more info: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/using_named_objects.asp
0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 4
  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now