Wrox Programmer Forums
Go Back   Wrox Programmer Forums > Open Source > BOOK Beginning Linux Programming, 3rd Edition
| 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 software programmers and website developers including Wrox book authors and readers. New member registration was closed in 2019. New posts were shut off and the site was archived into this static format as of October 1, 2020. If you require technical support for a Wrox book please contact http://hub.wiley.com
  #1 (permalink)  
Old March 6th, 2007, 02: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


  #2 (permalink)  
Old December 17th, 2011, 01: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


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 06:22 PM





Powered by vBulletin®
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Copyright (c) 2020 John Wiley & Sons, Inc.