Monday 15 August 2011

c - Modify the server so that it will only listen on loopback interface -



c - Modify the server so that it will only listen on loopback interface -

i'm trying run client server connection. here's code:

server.c

#include <sys/socket.h> #include <arpa/inet.h> #include <stdio.h> #include <time.h> #include <unistd.h> #include <string.h> #define max_buffer 128 #define daytime_server_port 13

/.../ int main(void) { int serverfd, connectionfd; struct sockaddr_in servaddr; char timebuffer[max_buffer+1]; time_t currentime;

serverfd = socket(af_inet, sock_stream, 0); memset(&servaddr, 0 , sizeof(servaddr)); servaddr.sin_family = af_inet; servaddr.sin_addr.s_addr = htonl(inaddr_any); servaddr.sin_port = htons(daytime_server_port); bind(serverfd, (struct sockaddr *) &servaddr, sizeof(servaddr)); listen(serverfd, 5); while(1) { connectionfd = accept(serverfd, (struct sockaddr *) null, null); if(connectionfd >= 0) { currentime = time(null); snprintf(timebuffer, max_buffer, "%s\n", ctime(&currentime)); write(connectionfd, timebuffer, strlen(timebuffer)); close(connectionfd); } } }

client.c

#include <sys/socket.h> #include <arpa/inet.h> #include <stdio.h> #include <time.h> #include <unistd.h> #include <string.h> #define max_buffer 128 #define daytime_server_port 13 int main() { int connectionfd, in; struct sockaddr_in servaddr; char timebuffer[max_buffer+1]; connectionfd = socket(af_inet,sock_stream,0); memset(&servaddr,0 ,sizeof(servaddr)); servaddr.sin_family = af_inet; servaddr.sin_port = htons(daytime_server_port); servaddr.sin_addr.s_addr = inet_addr("127.0.0.1"); connect(connectionfd,(struct sockaddr_in *) &servaddr , sizeof(servaddr)); while((in = read(connectionfd, timebuffer, max_buffer)) >0) { timebuffer[in] = 0; printf("\n%s" , timebuffer); } /*...*/ close(connectionfd); }

how modify server hear on loopback interface (not other interface)?

change

servaddr.sin_addr.s_addr = htonl(inaddr_any);

to utilize loop address. i.e.

servaddr.sin_addr.s_addr = htonl(2130706433l)

(used http://www.smartconversion.com/unit_conversion/ip_address_converter.aspx maths)

c networking netstat

No comments:

Post a Comment