06-25-2011
How Can I share a socket between childs?
Hello guys!
I had seen some posts at this forum talking about my problem, but maybe my scenario is a little different, and I want other solutions.
I saw users of this forums saying that the way to shared sockets is using UNIX Sockets, but this is the only way in my scenario?
My Scenario:
I have a process that is the server. Server accepts clients (sockets) and then call to fork. If two clients connects to my server, parent process will have two childs, and now is my problem, one of this child need to send a message to the another child.
First, I thinked that I could save fd socket in share memory, and then using this fd in another child I'll be able to send messages to another client, but doesn't works...
Any ideas?? Thanks!
PD: Sorry for my bad english
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
I need to write a shell script which would take 2 arguments pid , userid. Then it should kill all the child process under it. If a child process is not killed then it should wait for 1 minute and should kill.
can anybody give me the idea to write it? (0 Replies)
Discussion started by: nani_g
0 Replies
2. Programming
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <fcntl.h>
#include <signal.h>
#include <unistd.h>
#include <string.h>
#define BUFF_SIZE 256
#define CHILDS 4
#define DATAFILE "Client_Files.txt"
void worker(int n);... (3 Replies)
Discussion started by: dlcpereira
3 Replies
3. Programming
hi, i want to write a code for forking 3 4 child. n wants that every child process one of the account from global account list. i wrote a program for that, but problem is every child is processing every account in list. what can me done to avoid it.
attaching code with it
#include <stdio.h>... (2 Replies)
Discussion started by: anup13
2 Replies
4. UNIX for Advanced & Expert Users
Hi,
I was porting ipv4 application to ipv6; i was done with TCP transports. Now i am facing problem with SCTp transport at runtime.
To test SCTP transport I am using following server and client socket programs. Server program runs fine, but client program fails giving Invalid Arguments for... (0 Replies)
Discussion started by: chandrutiptur
0 Replies
5. Programming
Hi all,
I m writing an application, where i need to fork multiple childs and those child should handle particular task given to them.
More descriptive.
For example, suppose i have 4 Network, each network has multiple nodes. Now on the basis of network child should be forked and these child... (8 Replies)
Discussion started by: helpmeforlinux
8 Replies
6. Linux
Hello every one i am implementing client server program.To handle multiple fds of client in server i used poll function.But this poll not able to access socket fd from other process.How can i share socket fd between two process.
Please Help me,Thanks in advance. (1 Reply)
Discussion started by: andrew.paul
1 Replies
7. Programming
Hello every one i am implementing client server program.To handle multiple fds of client in server i used poll function.But this poll not able to access socket fd from other process.How can i share socket fd between two process.
Please Help me,Thanks in advance. (3 Replies)
Discussion started by: andrew.paul
3 Replies
8. Programming
Hi gurus, I would like to fork more children and then write their return values: so far I tried:
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
int main(void)
{
pid_t pid;
int rv=0, i;
... (5 Replies)
Discussion started by: wakatana
5 Replies
9. IP Networking
I need clarification on whether it is okay to set socket options on a listening socket
simultaneously when it is being used in an accept() call?
Following is the scenario:-
-- Task 1 - is executing in a loop - polling a listen socket, lets call it 'fd', (whose file descriptor is global)... (2 Replies)
Discussion started by: jake24
2 Replies
10. Programming
Hey guys,
I have to make a C program that simulates this command :
cat (files here) | sort > file.txt
So, I start and create a pipe. Then create the first child. This first child will execute the Cat through the pipe. Then create a second child that will execute sort, with input from... (4 Replies)
Discussion started by: Poppo
4 Replies
FORK(2) System Calls Manual FORK(2)
NAME
fork - create a new process
SYNOPSIS
pid = fork()
int pid;
DESCRIPTION
Fork causes creation of a new process. The new process (child process) is an exact copy of the calling process except for the following:
The child process has a unique process ID.
The child process has a different parent process ID (i.e., the process ID of the parent process).
The child process has its own copy of the parent's descriptors. These descriptors reference the same underlying objects, so that, for
instance, file pointers in file objects are shared between the child and the parent, so that an lseek(2) on a descriptor in the child
process can affect a subsequent read or write by the parent. This descriptor copying is also used by the shell to establish standard
input and output for newly created processes as well as to set up pipes.
The child processes resource utilizations are set to 0; see setrlimit(2).
RETURN VALUE
Upon successful completion, fork returns a value of 0 to the child process and returns the process ID of the child process to the parent
process. Otherwise, a value of -1 is returned to the parent process, no child process is created, and the global variable errno is set to
indicate the error.
ERRORS
Fork will fail and no child process will be created if one or more of the following are true:
[EAGAIN] The system-imposed limit on the total number of processes under execution would be exceeded. This limit is configuration-
dependent.
[EAGAIN] The system-imposed limit MAXUPRC (<sys/param.h>) on the total number of processes under execution by a single user would be
exceeded.
[ENOMEM] There is insufficient swap space for the new process.
SEE ALSO
execve(2), wait(2)
3rd Berkeley Distribution May 22, 1986 FORK(2)