Greetings,
I have a client written in php that is trying to connect to the following c server. Unfortunately, i am getting a warning message and the connection is refused. Since this is a c forum, i have attached the c code and would highly appreciate if someone could tell me if there is anything wrong with the code:
/***** inetserver.c *****/
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h> /* for getenv */
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h> /* Internet domain header */
#include <resolv.h>
#include <arpa/inet.h>
#include <errno.h>
#define SERVER_PORT 10022
struct sockaddr_in self = {AF_INET, 0};
int main()
{ int soc, ns, k;
char buf[2048];
struct sockaddr_in client_addr = {AF_INET};
self.sin_port = htons(SERVER_PORT);
socklen_t addrlen = sizeof(client_addr);
int val;
/* set up listening socket soc */
soc = socket(AF_INET, SOCK_STREAM, SOL_TCP);
if (soc < 0)
{ perror("server");
exit(1);
}
val = 1;
/*initialize ports and address*/
if (setsockopt(soc, SOL_SOCKET, SO_REUSEADDR, &val, sizeof val) != 0)
{ perror("server:setsockopt");
exit(1);
}
/*bind the socket(assign a port number */
if (bind(soc, (struct sockaddr *)&self, sizeof(self)) == -1)
{ perror("server:bind");
close(soc);
exit(1);
}
/*make it listening */
listen(soc, 30);
/* accept connection request */
ns = accept(soc, (struct sockaddr *)&client_addr, &addrlen);
if (ns < 0)
{ perror("server:accept");
close(soc);
exit(1);
}
/* data transfer on connected socket ns */
k = read(ns, buf, sizeof(buf) - 1);
buf[k] = '\0'; /* null-terminate string */
printf("SERVER RECEIVED: %s\n",buf);
write(ns, buf, k);
close(ns); close(soc);
return(0);
}
/***** end of inetserver.c *****/
Thank You Guys!!!
I have a client written in php that is trying to connect to the following c server. Unfortunately, i am getting a warning message and the connection is refused. Since this is a c forum, i have attached the c code and would highly appreciate if someone could tell me if there is anything wrong with the code:
/***** inetserver.c *****/
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h> /* for getenv */
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h> /* Internet domain header */
#include <resolv.h>
#include <arpa/inet.h>
#include <errno.h>
#define SERVER_PORT 10022
struct sockaddr_in self = {AF_INET, 0};
int main()
{ int soc, ns, k;
char buf[2048];
struct sockaddr_in client_addr = {AF_INET};
self.sin_port = htons(SERVER_PORT);
socklen_t addrlen = sizeof(client_addr);
int val;
/* set up listening socket soc */
soc = socket(AF_INET, SOCK_STREAM, SOL_TCP);
if (soc < 0)
{ perror("server");
exit(1);
}
val = 1;
/*initialize ports and address*/
if (setsockopt(soc, SOL_SOCKET, SO_REUSEADDR, &val, sizeof val) != 0)
{ perror("server:setsockopt");
exit(1);
}
/*bind the socket(assign a port number */
if (bind(soc, (struct sockaddr *)&self, sizeof(self)) == -1)
{ perror("server:bind");
close(soc);
exit(1);
}
/*make it listening */
listen(soc, 30);
/* accept connection request */
ns = accept(soc, (struct sockaddr *)&client_addr, &addrlen);
if (ns < 0)
{ perror("server:accept");
close(soc);
exit(1);
}
/* data transfer on connected socket ns */
k = read(ns, buf, sizeof(buf) - 1);
buf[k] = '\0'; /* null-terminate string */
printf("SERVER RECEIVED: %s\n",buf);
write(ns, buf, k);
close(ns); close(soc);
return(0);
}
/***** end of inetserver.c *****/
Thank You Guys!!!