Hi dear ,
checked your program..
upto me it is working fine on linux machine.
but for next i want to suggest one more thing ..
just show us the type of errors u r facing.
that will be easy to answer .
return value after the listen system call is not checked,
what is the listen call fails ?
when bind call fails, the socket descriptor created in socket call is not closed, which should be closed ( good to close all open descriptors prior calling exit )
the above argument applies to accept call as well.
hi all,
thanks for your reply.since i am new to this forum ,that why i posted it in wrong forum.as per suggestion i am giving return value to listen.also i gussed,the problem is in the client program.because when i am running the client program i getting messages
missing hostname
connect: Connection refused
68 exit(1);
(gdb)
i am posting my client program .do you have any suggestion about this.
#include <stdio.h> /* Basic I/O routines */
#include <stdlib.h>
#include <sys/types.h> /* standard system types */
#include <sys/socket.h> /* socket interface functions */
#include <netinet/in.h>
#include <netdb.h> /* host to IP resolution */
#include <unistd.h>
#include <errno.h>
#include <string.h>
#define portno 6789 /* default port and host */
#define MAXDATASIZE 100 /* max number of bytes */
void error(char *msg)
{
perror(msg);
exit(0);
}
int main(int argc, char *argv[])
{
int serversocket, numbytes;
struct sockaddr_in serv_addr;
struct hostent *server;
char buffer[MAXDATASIZE];
int rc;
if (argc < 3)
{
fprintf(stderr,"Missing host name\n", argv[0]);
/*exit(0);*/
}
serversocket = socket(AF_INET, SOCK_STREAM, 0);
if (serversocket <0)
{
perror("socket");
exit(1);
}
server = gethostbyname("152.15.92.168");
if (server == NULL)
{
perror("gethostbyname");
exit(1);
}
serv_addr.sin_family = AF_INET;
/*bcopy((char *)server->h_addr,
(char *)&serv_addr.sin_addr.s_addr,
server->h_length);*/
serv_addr.sin_port = htons(portno);
serv_addr.sin_addr = *((struct in_addr
*)server->h_addr);
memset(&(serv_addr.sin_zero), '\0', 8); // zero the
rest of the struct
rc = connect(serversocket, (struct sockaddr
*)&serv_addr,sizeof(serv_addr)) ;
if(rc)
{
perror("connect");
exit(1);
}
if ((numbytes=recv(serversocket, buffer,
MAXDATASIZE-1, 0)) == -1)
{
perror("recv");
exit(1);
}
buffer[numbytes] = '\0';
printf("Received: %s",buf);
//write( 1, buffer,numbytes );
close(serversocket);
return 0;
}
/*n = send(mysocket,buffer,strlen(buffer),0);
if (n < 0)
error("ERROR writing to socket");
n = read(mysocket,buffer,sizeof(buffer)-1);
if (n < 0)
error("ERROR reading from socket");
buffer[n]='\0';
close(mysocket);
printf("%s\n",buffer);
return 0;
}*/