regarding socket & mssage queue


 
Thread Tools Search this Thread
Top Forums Programming regarding socket & mssage queue
# 22  
Old 11-29-2007
Sir, As u told me i had used strace -ppid
and here is the output what I am getting........
it is showing me two pids for a same process........and when I used to strace to them then its showing me following outputs .........

outputs::::::::
[root@localhost New Folder]#strace -p3153
Process 3153 attached - interrupt to quit
write(5, "\0i, I am fine101010\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 100
<unfinished ...>
Process 3153 detached
[root@localhost New Folder]# strace -p3152
Process 3152 attached - interrupt to quit
wait4(-1,
# 23  
Old 11-29-2007
Why is it sitting in wait4()? looks like it thinks the child process should be dead and it's trying to reap it, so it has fallen out of the select loop.

The two pids are one for the main process and another for the child process, which is what we were trying to achieve.
# 24  
Old 11-29-2007
Quote:
Why is it sitting in wait4()? looks like it thinks the child process should be dead and it's trying to reap it
I had put wait in parent ....so that parent will not terminate untill child will not free its resources........If I will not use wait in parent, the parent will terminate and child will be running.........
# 25  
Old 11-29-2007
Quote:
Originally Posted by arunchaudhary19
I had put wait in parent ....so that parent will not terminate untill child will not free its resources........If I will not use wait in parent, the parent will terminate and child will be running.........
Yes that's fine, but it's not going to be waiting for input in select if it's blocking in wait4.

your main process should be

Code:
pid_child=fork();

if (!pid_child) 
{ 
     exit(run_child());
}

while (running)
{
      set up fd_sets
      select
      do reads,writes and other stuff
}

kill(pid_child,SIGINT);
waitpid(pid_child...)

# 26  
Old 11-29-2007
Quote:
while (len)
{
int i=read(fd,p,len);
if (i < 0) { perror("read"); break; }
if (i == 0) break;
p+=i;
len-=i;
}
you had send me this code.....but I didnt able to understand why you had used p+=i; where p is a char string ......
moreover I am getting more difficulties with code...i.e through pipe read end I am not able to read the data.....
when i check for strace -ppid its showing continously polling (for parent) with select
and child witing for msgrcv()......
# 27  
Old 11-29-2007
Quote:
Originally Posted by arunchaudhary19
but I didnt able to understand why you had used p+=i;
Say you want to receive 4096 bytes, but the first read only gets 1024, the next read you do wants to start from where you left off.

Add debugging code to trace what the program is doing.

Use a debugger to step through the code line by line if you have to.
# 28  
Old 12-06-2007
Sir,
now facing problem while using socket comm. and select........my message queue and pipe part is working ....no problem at that side....
my application is continously reading through pipe but when socket comes into picture (my socket is server side (tcp/ip))....it reads only once through socket .....and I had to start client again.

this means that polling is again started with new socket connection......not as per read call.......
so how to implement....tell some steps to follow??????
please guide
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

C++ socket, fork & pipes

Hello, I'm stuck and this is a matter which I need to resolve quite fast (but I couldn't post in the "Emergency" section); the problem is this : I have created a chat program in which the client sends the sentence to the server and then the server should send it to all the clients connected,... (2 Replies)
Discussion started by: timmyyyyy
2 Replies

2. IP Networking

Clarification - Setting socket options at the same time when socket is listening

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

3. Programming

Error with socket operation on non-socket

Dear Experts, i am compiling my code in suse 4.1 which is compiling fine, but at runtime it is showing me for socket programming error no 88 as i searched in errno.h it is telling me socket operation on non socket, what is the meaning of this , how to deal with this error , please... (1 Reply)
Discussion started by: vin_pll
1 Replies

4. Programming

socket function to read a webpage (socket.h)

Why does this socket function only read the first 1440 chars of the stream. Why not the whole stream ? I checked it with gdm and valgrind and everything seems correct... #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <string.h> #include... (3 Replies)
Discussion started by: cyler
3 Replies

5. Programming

which socket should socket option on be set

Hi all, On the server side, one socket is used for listening, the others are used for communicating with the client. My question is: if i want to set option for socket, which socket should be set on? If either can be set, what's the different? Again, what's the different if set option... (1 Reply)
Discussion started by: blademan100
1 Replies

6. UNIX for Advanced & Expert Users

connect problem for sctp socket (ipv6 socket) - Runtime fail Invalid Arguments

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

7. Programming

Multiplexing socket and message queue using Select()

I have a socket and a message queue over which i am trying to multiplex input using select(). When data comes over socket the select works but when it comes over message queue the select is not detecting it . Create_Q gets the identifier of the messege queue. ... (1 Reply)
Discussion started by: shaurya.rastogi
1 Replies

8. UNIX for Dummies Questions & Answers

Socket Handling Differences Between Linux & Unix?

Sorry if this is a stupid question! I have been developing a Java application that I am deploying on both Unix and Linux servers, which uses lots of socket handling. When the server side connection is dropped by the server un-gracefully I have been seeing close_waits and null connections. ... (0 Replies)
Discussion started by: Vinnie
0 Replies

9. UNIX for Advanced & Expert Users

Unix: socket & Co

Hello, I need help to replace the ................. of client.c that request the server implemented by server.c ------------------ Listing 1 - server.c /* Inclusion des différentes librairies nécessaires */ #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> ... (0 Replies)
Discussion started by: bounkolh
0 Replies

10. UNIX for Dummies Questions & Answers

Session PID & socket connection pid

1. If I use an software application(which connects to the database in the server) in my local pc, how many PID should be registered? Would there be PID for the session and another PID for socket connection? 2. I noticed (through netstat) that when I logged in using the my software application,... (1 Reply)
Discussion started by: pcx26
1 Replies
Login or Register to Ask a Question