By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,928 Members | 1,146 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,928 IT Pros & Developers. It's quick & easy.

Help with "Concurrent Network Server" Design

P: n/a
Hi All,

I have a lexical analyzer in flex/bison associated with a lot of custom
C function calls linking to external programs which uses quite a lot of
global variables and data structures. The program is quite complex and
does a lot of Natural Language Processing. The program needs to
initialize a few databases from files every time it launches and needs
to load them in the memory.

I am currently thinking of a design where I could run the program as a
"Concurrent Network Server" and connect to it each time I want to
process some text input. There are the following problems:
1. Since I use global variables (which cannot be avoided) I need to
make sure that for each new connection, I need to initialize all these
global variables and data structures.
2. Due to the above reason I probably need a new process Image for
every new connection. I have tried using fork but sometimes the global
variables are not properly initialized. Another problem I believe is
that I would very soon finish the fork limit for the OS, since there
are hundreds of subsequent connections.

I need to know the perfect "Concurrent Network Server" design for the
above problem. I am currenlty using Debian GNU/Linux with Kernel 2.4.18
as my primary development machine (I know this is ancient, but there
are other programs which run only with GCC 2.95). I have also ported
the program and not the experimental Network code to FreeBSD
6.0-RELEASE.

I am not much of a OS and Network Programming Guy, but am quite
comfortable with C Porgramming and Data Structures. I would really
appreciate if anybody could help me out.

Thanks in Advance,
Animesh

Dec 23 '05 #1
Share this Question
Share on Google+
3 Replies


P: n/a
Animesh <an*****@neolinuxsolutions.com> wrote:
I need to know the perfect "Concurrent Network Server" design for the
above problem.


(You're looking more for comp.programming, where they may very well
recommend "Design Patterns" by the Gang of Four. GIYF.)

Your post is off-topic for comp.lang.c. Please visit

http://www.ungerhu.com/jxh/clc.welcome.txt
http://www.eskimo.com/~scs/C-faq/top.html
http://benpfaff.org/writings/clc/off-topic.html

for posting guidelines and frequently asked questions. Thank you.

--
Christopher Benson-Manica | I *should* know what I'm talking about - if I
ataru(at)cyberspace.org | don't, I need to know. Flames welcome.
Dec 23 '05 #2

P: n/a
Animesh wrote:

<snip>
I need to know the perfect "Concurrent Network Server" design for the
above problem.
1) The C programming language knows nothing about networks so this is
off topic here.
2) The C programming language has no support for concurrency, so this is
off topic here.
3) There is no such thing as a perfect design, so the answer is, "it
does not exist."
I am currenlty using Debian GNU/Linux with Kernel 2.4.18


<snip>

Then I suggest you try asking on a Linux group, there are plenty of them
available. We only deal with standard C here, not the specifics of every
system and every extension library.
--
Flash Gordon
Living in interesting times.
Although my email address says spam, it is real and I read it.
Dec 23 '05 #3

P: n/a

Flash Gordon wrote:

Then I suggest you try asking on a Linux group, there are plenty of them
available. We only deal with standard C here, not the specifics of every
system and every extension library.
--


Thanks Flash & Christopher,

I will head to comp.unix.programmer.

Regards,
Animesh

Dec 24 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.