Wrox Programmer Forums

Need to download code?

View our list of code downloads.

Go Back   Wrox Programmer Forums > Open Source > BOOK Beginning Linux Programming, 3rd Edition
Password Reminder
Register
Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read
BOOK Beginning Linux Programming, 3rd Edition
This is the forum to discuss the Wrox book Beginning Linux Programming, 2nd Edition by Richard Stones, Neil Matthew, Alan Cox; ISBN: 9780764543739
Welcome to the p2p.wrox.com Forums.

You are currently viewing the BOOK Beginning Linux Programming, 3rd Edition section of the Wrox Programmer to Programmer discussions. This is a community of tens of thousands of software programmers and website developers including Wrox book authors and readers. As a guest, you can read any forum posting. By joining today you can post your own programming questions, respond to other developersí questions, and eliminate the ads that are displayed to guests. Registration is fast, simple and absolutely free .
DRM-free e-books 300x50
Reply
 
Thread Tools Display Modes
  #1 (permalink)  
Old March 6th, 2007, 01:24 PM
Registered User
 
Join Date: Mar 2007
Location: , , .
Posts: 1
Thanks: 0
Thanked 0 Times in 0 Posts
Default broken pipe error in implementing client -server

i am new to socket programming...when i was trying the code given in the book for client-server model using socket programming, i faced a broken pipe error in the server program

--------------client.c-------------------
#include<sys/types.h>
#include<sys/socket.h>
#include<stdio.h>
#include<sys/un.h>
#include<unistd.h>
#include<stdlib.h>
int main()
{ int sockfd;
        int len;
        struct sockaddr_un address;
        int result;
        char ch='A';

        sockfd=socket(AF_UNIX,SOCK_STREAM,0);

        address.sun_family=AF_UNIX;
        strcpy(address.sun_path,"server_socket");
        len=sizeof(address);

        result=connect(sockfd,(struct sockaddr *)&address,len);
        if(result=-1)
        { perror("oops:client");
                exit(1);
        }

        write(sockfd,&ch,1);
        read(sockfd,&ch,1);
        printf("char from server=%c\n",ch);
        close(sockfd);
        exit(0);
}
--------------server.c-----------------
#include<sys/types.h>
#include<sys/socket.h>
#include<stdio.h>
#include<sys/un.h>
#include<unistd.h>

int main()
{
        int server_sockfd,client_sockfd;
        int server_len,client_len;
        struct sockaddr_un server_address;
        struct sockaddr_un client_address;
        char ch;

        unlink("server_socket");
        server_sockfd=socket(AF_UNIX,SOCK_STREAM,0);

        server_address.sun_family=AF_UNIX;
        strcpy(server_address.sun_path,"server_socket");
        server_len=sizeof(server_address);
        bind(server_sockfd,(struct sockaddr *)&server_address,server_len);
listen(server_sockfd,5);
        while(1)
        { printf("server waiting\n");
                client_len=sizeof(client_address);
                client_sockfd=accept(server_sockfd,(struct sockaddr *)&client_address,(socklen_t *)&client_len);

                read(client_sockfd,&ch,1);
                ch++;
                write(client_sockfd,&ch,1);
                close(client_sockfd);
        }
}
--------------------------------------------------------
when i run server in the background i get
server waiting

after this when i run client i get
oops:client:Success
[1]+ Broken pipe ./server

i am not being able to figure the error...plz help


Reply With Quote
  #2 (permalink)  
Old December 17th, 2011, 12:42 PM
Registered User
Points: 3, Level: 1
Points: 3, Level: 1 Points: 3, Level: 1 Points: 3, Level: 1
Activity: 0%
Activity: 0% Activity: 0% Activity: 0%
 
Join Date: Dec 2011
Posts: 1
Thanks: 0
Thanked 0 Times in 0 Posts
Default Help!

Hi Octavius, did you manage to resolve this and if so, how? Thanks, Frank




Quote:
Originally Posted by octavius View Post
i am new to socket programming...when i was trying the code given in the book for client-server model using socket programming, i faced a broken pipe error in the server program

--------------client.c-------------------
#include<sys/types.h>
#include<sys/socket.h>
#include<stdio.h>
#include<sys/un.h>
#include<unistd.h>
#include<stdlib.h>
int main()
{ int sockfd;
        int len;
        struct sockaddr_un address;
        int result;
        char ch='A';

        sockfd=socket(AF_UNIX,SOCK_STREAM,0);

        address.sun_family=AF_UNIX;
        strcpy(address.sun_path,"server_socket");
        len=sizeof(address);

        result=connect(sockfd,(struct sockaddr *)&address,len);
        if(result=-1)
        { perror("oops:client");
                exit(1);
        }

        write(sockfd,&ch,1);
        read(sockfd,&ch,1);
        printf("char from server=%c\n",ch);
        close(sockfd);
        exit(0);
}
--------------server.c-----------------
#include<sys/types.h>
#include<sys/socket.h>
#include<stdio.h>
#include<sys/un.h>
#include<unistd.h>

int main()
{
        int server_sockfd,client_sockfd;
        int server_len,client_len;
        struct sockaddr_un server_address;
        struct sockaddr_un client_address;
        char ch;

        unlink("server_socket");
        server_sockfd=socket(AF_UNIX,SOCK_STREAM,0);

        server_address.sun_family=AF_UNIX;
        strcpy(server_address.sun_path,"server_socket");
        server_len=sizeof(server_address);
        bind(server_sockfd,(struct sockaddr *)&server_address,server_len);
listen(server_sockfd,5);
        while(1)
        { printf("server waiting\n");
                client_len=sizeof(client_address);
                client_sockfd=accept(server_sockfd,(struct sockaddr *)&client_address,(socklen_t *)&client_len);

                read(client_sockfd,&ch,1);
                ch++;
                write(client_sockfd,&ch,1);
                close(client_sockfd);
        }
}
--------------------------------------------------------
when i run server in the background i get
server waiting

after this when i run client i get
oops:client:Success
[1]+ Broken pipe ./server

i am not being able to figure the error...plz help
Reply With Quote
Reply


Thread Tools
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

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

Similar Threads
Thread Thread Starter Forum Replies Last Post
Implementing a Queue Server Listener pdistant Pro Java 0 July 8th, 2008 05:06 AM
Implementing a Queue Server Listener pdistant Java Basics 0 July 3rd, 2008 06:17 AM
Problem in Socket Programming (BROKEN PIPE) ankur_vachhani Linux 1 April 12th, 2004 08:12 AM
Cannot find column ..." Error. Broken link to SQL? HenryE Access 1 January 14th, 2004 05:22 PM



All times are GMT -4. The time now is 06:32 AM.


Powered by vBulletin® Version 3.7.0
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
© 2013 John Wiley & Sons, Inc.