Visit Our UNIX and Linux User Community


regarding socket & mssage queue


 
Thread Tools Search this Thread
Top Forums Programming regarding socket & mssage queue
# 1  
Old 11-21-2007
regarding socket & mssage queue

hello ,
I have to write an application in which I had to implement both Socket Comminication and IPC- message queues.
and that process should run in Infinite loop as well I had to continously check and send data through both type of communications...
What should I use to implement it...
I had implemented message queue and established socket communiction......but not getting how to polll and how to continously check data and send data ...
Neither my process should block nor terminate..

So which mechanism or system calls should I use to implement it??????
# 2  
Old 11-21-2007
I would implement a select/poll loop in the main program to multiplex input.

At the start of the program I would use pipe() and fork() to create a child process on the write end of a pipe. This child process would simply do "msgrcv()" and write the resulting message to the write end of the pipe.

The select fd_set for reading would include any sockets and the read end of the pipe, hence allowing us to read from both any filedescriptor and the pipe which is getting fed by the child process.

When it comes to shutdown you use a kill() and waitpid() to clear up the child.
# 3  
Old 11-21-2007
As I told you that I am using select for socket .....
so there will be no need for using different select for socket and message queues.......
# 4  
Old 11-21-2007
Quote:
Originally Posted by arunchaudhary19
As I told you that I am using select for socket .....
No you didn't, you made no mention of using select.

Quote:
Originally Posted by arunchaudhary19
so there will be no need for using different select for socket and message queues.......
So what are you asking for?
# 5  
Old 11-22-2007
ok.............
I am sorry... I forget to mention it earler..........
I want to ask you that ...........now I will have two read_fds --->>>one from socket another from pipe end .
So whenever there will be data.....through read_fds, select will multiplex between the two.......
# 6  
Old 11-22-2007
You just need the single select statement as you have now, but by spawning the child process to do the reading and converting it into a pipe message you can now effectively select on both tcp sockets and the pipe for the message queue.

I suggest you may want to add a length based messaging protocol so that you can preserve the message boundaries from the message queue. Eg you write on the pipe each dequeued message with a four byte prefix indicating the length of the message. Then when you read from the pipe, you can read four bytes, then know the total length of the single message and then read that.
# 7  
Old 11-28-2007
I am getting one problem i.e my child is terminating after writting once into the pipe ...as porter guided me ..........
moreover I am not able to use select with read pipe descriptor....

guide me some more steps.......

Previous Thread | Next Thread
Test Your Knowledge in Computers #564
Difficulty: Medium
The negation operator is a null task operator not a unary operator.
True or False?

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

Featured Tech Videos