Solved

COM port simulation: Named Pipes

Posted on 2002-04-22
7
296 Views
Last Modified: 2013-11-20
I do not have 2 COM ports on the back of my PC, so I am trying to use an internal software pretend comport.

I am trying to use Named Pipes, as I require bidirectional FIFO comms. However, the examples I have seen all depend on knowing whether you are programming the client or server end of the pipe.. i.e. server: CreateNamedPipe().... Client: ConnectNamedPipe()...

I am trying to encapsulate this in a class so I can use the same code in both client and server ends... which ever end starts first will create the pipe, and which ever is last out will close the pipe. (hopefully, windows is clever enough to know that when I CloseHandle() the last one out will destroy the resources??? )

Any Ideas please???

Thanks.
Nigel.
0
Comment
Question by:nigel5
7 Comments
 
LVL 49

Expert Comment

by:DanRollins
ID: 6961098
THis article contains cod that creates a CNamedPipe class, derived from CFile.  It should answer all of your questions.

Garden Hoses at Work
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpic/html/msdn_npipes.asp

A quick read indicates that the author does *not* expect to make the ends of the pipe interchangeable.  One end is the server and one is the client.  But remember that communication is bidirectional, so it doesn't really matter which end is which once the connection is established.

-- Dan
0
 
LVL 3

Expert Comment

by:danny_pav
ID: 6962871
You can't make the ends interchangeable.

The closest you can do is to make your client continuously try to connect to a server.
0
 

Author Comment

by:nigel5
ID: 6963872
Ah, and if it can't connect, then it can open the server end...

Cool...

I'll give it a go.
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 

Author Comment

by:nigel5
ID: 7246175
Sorry for not getting back for a bit, but been doing lots of other things...

If you test to see if the pipe exists first you can either attach to it if it exists, or create it if it doesn't. That way you can make the same class handle the work, and you don't have to worry about the concept of server/client.

When you close the hanldes, Windows handles the cleanup, so the server can disconnect first, and the pipe can still be connected to by another process.
0
 
LVL 49

Expert Comment

by:DanRollins
ID: 7247313
nigel5,
If you have answered this question yourself, please post to Community Support and ask for a refund.  Better to finalize this now and save work for the database cleanup crew.
-- Dan
0
 
LVL 1

Accepted Solution

by:
DarthMod earned 0 total points
ID: 11462037
PAQed, with points refunded (200)

DarthMod
Community Support Moderator
Experts-Exchange
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
WinWaitActive parameters 12 31
Best tools for Backup and restore of Wordpress site 6 55
modThree challenge 4 77
Modbus - whats the maximum I can store in one register? 4 78
This is to be the first in a series of articles demonstrating the development of a complete windows based application using the MFC classes.  I’ll try to keep each article focused on one (or a couple) of the tasks that one may meet.   Introductio…
Introduction: The undo support, implementing a stack. Continuing from the eigth article about sudoku.   We need a mechanism to keep track of the digits entered so as to implement an undo mechanism.  This should be a ‘Last In First Out’ collec…
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.
A company’s greatest vulnerability is their email. CEO fraud, ransomware and spear phishing attacks are the no1 threat to a company’s security. Cybercrime is responsible for the largest loss of money to companies today with losses projected to r…

919 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now