The UNIX and Linux Forums  

Go Back   The UNIX and Linux Forums > Top Forums > UNIX for Advanced & Expert Users
Google UNIX.COM
Home Forums Register Rules & FAQ Members List Arcade Search Today's Posts Mark Forums Read


UNIX for Advanced & Expert Users Advanced UNIX and Linux questions go here. Expert-to-Expert.


Other UNIX.COM Threads You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
HTTP Keep-Alive socket problem imdupeng High Level Programming 0 03-29-2008 05:11 PM
Problem Connecting to Socket Stevhp High Level Programming 6 04-30-2007 04:27 PM
Problem in HP-Unix while writing into socket AshokG HP-UX 0 02-24-2005 10:19 PM
Socket Problem Agent007 High Level Programming 3 04-03-2004 05:15 PM
[Problem]Reuse port in BSD socket Namely High Level Programming 1 11-28-2003 07:36 AM

Reply
 
Submit Tools LinkBack Thread Tools Search this Thread Display Modes
  #1 (permalink)  
Old 05-20-2008
Registered User
 

Join Date: Oct 2007
Posts: 3
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiReddit! Stumble this Post!Spurl this Post!
problem with socket reading

I am not able to receive the message on socket in the current process when its waiting for its child to exit.

code looks something like below
//in one thread of the current process
//thread 1

===============================================
int numBytes = read(sockid,buf,SIZE); //Now the thread is blocked
================================================


//in another thread
//thread 2

=================================================
if((pid = fork()) == 0) // child process
{
exec(...);
}
else
{
waitpid(pid); //now the process is blocked for the child's exit
}
=================================================
In the above scenario, when child is executing and parent is blocked for child's exit, also when there is some message available on the socket descrtiptor for the first thread to read, I am not able to read that even after child's exit. so could somebody throw more light on the above scenario?

Thanks in advance
Swap007
Reply With Quote
Forum Sponsor
  #2 (permalink)  
Old 05-20-2008
...@...
 

Join Date: Feb 2004
Location: NM
Posts: 3,236
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiReddit! Stumble this Post!Spurl this Post!
Can you not use non-blocking reads or select()?
Reply With Quote
  #3 (permalink)  
Old 05-20-2008
Registered User
 

Join Date: Oct 2007
Posts: 3
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiReddit! Stumble this Post!Spurl this Post!
yaaa I m using select call b4 doing read on socket .
so the code is somewhat like this

//thread 1

==========================================
int retval = select(.....)//Now the thread is blocked and it will be awaked whn something is thr to read from socket.


if(retval == -1)
cout<<"error"<<endl;
else
int numBytes = read(sockid,buf,SIZE);
============================================

is dis fine ????
Reply With Quote
Google UNIX.COM
Reply



Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT -7. The time now is 09:34 PM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited.
The UNIX and Linux Forums Content Copyright ©1993-2008 The CEP Blog All Rights Reserved -Ad Management by RedTyger

Search Engine Optimization by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102