 |
25-12-2011, 11:32 AM
|
#1 (permalink)
|
|
Apprentice
Join Date: May 2007
Posts: 99
|
Need help in Client server program
I want to implement a program in linux using c/c++ to implement client server architecture using pocket programming. It should be such that when a user
Stores a file on server the server slits the file and stores it on 2 or more server. Whenever user retrieves the file, the server retrieves the file again from different server forwards all the fragments to the user and display it in single file.
Please reply
__________________
visit my site: www.techdrome.blogspot.com
|
|
|
|
Advertisements. Register and be a member of the community to get rid of them.
|
|
Advertisement
|
|
25-12-2011, 12:44 PM
|
#2 (permalink)
|
|
BIOS Terminator
Join Date: Apr 2008
Location: Ranchi
Posts: 816
|
Re: Need help in Client server program
Quote:
Originally Posted by dashang
I want to implement a program in linux using c/c++ to implement client server architecture using pocket programming. It should be such that when a user
Stores a file on server the server slits the file and stores it on 2 or more server. Whenever user retrieves the file, the server retrieves the file again from different server forwards all the fragments to the user and display it in single file.
Please reply
|
that's socket programming
use socket() and connect() calls. here is an excellent tut Linux Howtos: C/C++ -> Sockets Tutorial
splitting and joining is easy file handling problem.
|
|
|
26-12-2011, 01:31 AM
|
#3 (permalink)
|
|
NULL_PTR
Join Date: Jan 2006
Location: Dangling Pointer
Posts: 88
|
Re: Need help in Client server program
google for beej's
__________________
Writing Mine Own Os
Wanna Join Pm ME
|
|
|
26-12-2011, 09:52 AM
|
#4 (permalink)
|
|
Apprentice
Join Date: May 2007
Posts: 99
|
Re: Need help in Client server program
guys but what about
"user stores a file on server the server slits the file and stores it on 2 or more server." Please help in this.
If possible can you code it for me because i dont know anything about socket and our professors are recklesss. they just say do it , they dont teach also
__________________
visit my site: www.techdrome.blogspot.com
|
|
|
26-12-2011, 02:05 PM
|
#5 (permalink)
|
|
BIOS Terminator
Join Date: Apr 2008
Location: Ranchi
Posts: 816
|
Re: Need help in Client server program
Quote:
Originally Posted by dashang
guys but what about
"user stores a file on server the server slits the file and stores it on 2 or more server." Please help in this.
If possible can you code it for me because i dont know anything about socket and our professors are recklesss. they just say do it , they dont teach also
|
this is the case in all(most) colleges in India. so get used to it.
At least first go through that link i have given. it has very well explained sockets under Linux. Then attempt the program and if you face any problems, we are here to help.
|
|
|
26-12-2011, 02:52 PM
|
#6 (permalink)
|
|
God of Mistakes...
Join Date: Dec 2005
Location: Pune, Maharashtra
Posts: 1,923
|
Re: Need help in Client server program
First try to code simple program which stores a single file using the tutorial mentioned by nims11. Then post the code. Other members might help you in further coding.
|
|
|
07-01-2012, 12:53 PM
|
#7 (permalink)
|
|
Apprentice
Join Date: May 2007
Posts: 99
|
Re: Need help in Client server program
server.C program
Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
void error(const char *msg)
{
perror(msg);
exit(1);
}
int main(int argc, char *argv[])
{
int sockfd, newsockfd, portno;
socklen_t clilen;
char buffer[256];
struct sockaddr_in serv_addr, cli_addr;
int n;
if (argc < 2) {
fprintf(stderr,"ERROR, no port provided\n");
exit(1);
}
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0)
error("ERROR opening socket");
bzero((char *) &serv_addr, sizeof(serv_addr));
portno = atoi(argv[1]);
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = INADDR_ANY;
serv_addr.sin_port = htons(portno);
if (bind(sockfd, (struct sockaddr *) &serv_addr,
sizeof(serv_addr)) < 0)
error("ERROR on binding");
listen(sockfd,5);
clilen = sizeof(cli_addr);
newsockfd = accept(sockfd,
(struct sockaddr *) &cli_addr,
&clilen);
if (newsockfd < 0)
error("ERROR on accept");
bzero(buffer,256);
n = read(newsockfd,buffer,255);
if (n < 0) error("ERROR reading from socket");
printf("Here is the message: %s\n",buffer);
n = write(newsockfd,"I got your message",18);
if (n < 0) error("ERROR writing to socket");
close(newsockfd);
close(sockfd);
return 0;
}
client.C
Code:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
void error(const char *msg)
{
perror(msg);
exit(0);
}
int main(int argc, char *argv[])
{
int sockfd, portno, n;
struct sockaddr_in serv_addr;
struct hostent *server;
char buffer[256];
if (argc < 3) {
fprintf(stderr,"usage %s hostname port\n", argv[0]);
exit(0);
}
portno = atoi(argv[2]);
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0)
error("ERROR opening socket");
server = gethostbyname(argv[1]);
if (server == NULL) {
fprintf(stderr,"ERROR, no such host\n");
exit(0);
}
bzero((char *) &serv_addr, sizeof(serv_addr));
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);
if (connect(sockfd,(struct sockaddr *) &serv_addr,sizeof(serv_addr)) < 0)
error("ERROR connecting");
printf("Please enter the message: ");
bzero(buffer,256);
fgets(buffer,255,stdin);
n = write(sockfd,buffer,strlen(buffer));
if (n < 0)
error("ERROR writing to socket");
bzero(buffer,256);
n = read(sockfd,buffer,255);
if (n < 0)
error("ERROR reading from socket");
printf("%s\n",buffer);
close(sockfd);
return 0;
}
now what to do , i want client to uplload file and server shud split it and send to other server and when user retrieves server should combine the parts and send to user
__________________
visit my site: www.techdrome.blogspot.com
Last edited by krishnandu.sarkar; 07-01-2012 at 12:58 PM.
Reason: added code tags and removed duplicate entries
|
|
|
| Thread Tools |
|
|
| Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
|
|
|