UNIX Client and Server
Please support our C advertiser: Programming Forums
![]() |
•
•
Posts: 4
Reputation:
Solved Threads: 0
Hello
How to send a file from server to client.
I am a bigger in C with unix, i am trying to read a file from server and display it in client , i got a separate code to read a file , and i tried to connect the server and client with the following code is working fine only it shows a warning.
I am using the sample code from the follosing site
http://www2.ics.hawaii.edu/~esb/2003...cs651/hw1.html
the connection is working fine , but i dont know how to add the sending and receving code in to it and the text reading code in to that code...
if any one can help me , It would be much appreciated. Thank You for reading.
file reading code i am using is as fallows.
#include <stdio.h>
int main ( void )
{
static const char filename[] = "file.txt";
FILE *file = fopen ( filename, "r" );
if ( file != NULL )
{
char line [ 128 ]; /* or other suitable maximum line size */
while ( fgets ( line, sizeof line, file ) != NULL ) /* read a line */
{
fputs ( line, stdout ); /* write the line */
}
fclose ( file );
}
else
{
perror ( filename ); /* why didn't the file open? */
}
return 0;
}
Thank u
How to send a file from server to client.
I am a bigger in C with unix, i am trying to read a file from server and display it in client , i got a separate code to read a file , and i tried to connect the server and client with the following code is working fine only it shows a warning.
I am using the sample code from the follosing site
http://www2.ics.hawaii.edu/~esb/2003...cs651/hw1.html
the connection is working fine , but i dont know how to add the sending and receving code in to it and the text reading code in to that code...
if any one can help me , It would be much appreciated. Thank You for reading.
file reading code i am using is as fallows.
#include <stdio.h>
int main ( void )
{
static const char filename[] = "file.txt";
FILE *file = fopen ( filename, "r" );
if ( file != NULL )
{
char line [ 128 ]; /* or other suitable maximum line size */
while ( fgets ( line, sizeof line, file ) != NULL ) /* read a line */
{
fputs ( line, stdout ); /* write the line */
}
fclose ( file );
}
else
{
perror ( filename ); /* why didn't the file open? */
}
return 0;
}
Thank u
It was originally posted in the board which is for welcoming new members, so I moved it to the C programming language board, as it is indeed a question about C programming.
Master of puppets Im pulling your strings - blinded by me, you cant see a thing. Master! Master!
If i am helpful, please give me reputation points.
If i am helpful, please give me reputation points.
•
•
Posts: 14
Reputation:
Solved Threads: 0
I'm no expert in socket programming, but i think these functions might be of some use.
Hope i helped.
send() to send data recv() to receive data
•
•
Posts: 4
Reputation:
Solved Threads: 0
Hi thank u for the reply.
I got changed the code to following , now i am able to send a file from server to client . That means send A from server and Save as B in client.
Server code
Client Code
Now i am trying to read B and display in client , for that i changed the following code and inserted it in to the client code but it say file is alread open..... so i am not able to display the B in client.
What is the point in code i am missing out , how to cahge the following code to display the file B in client.
Thank You for readying.
I got changed the code to following , now i am able to send a file from server to client . That means send A from server and Save as B in client.
Server code
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#define PORTNUM 1995
int main(int argc, char *argv[])
{
int mysocket, consocket, socksize;
struct sockaddr_in dest;
struct sockaddr_in serv;
socksize = sizeof(struct sockaddr_in);
memset(&dest, 0, sizeof(dest));
serv.sin_family = AF_INET;
serv.sin_addr.s_addr = INADDR_ANY;
serv.sin_port = htons(PORTNUM);
mysocket = socket(AF_INET, SOCK_STREAM, 0);
bind(mysocket, (struct sockaddr *)&serv, sizeof(struct sockaddr));
listen(mysocket, 1);
int i= 0;
char buf[50];
consocket = accept(mysocket, (struct sockaddr *)&dest, &socksize);
while(1)
{
/*consocket = accept(mysocket, (struct sockaddr *)&dest, &socksize);*/
printf("Incoming connection from %s - sending welcome\n", inet_ntoa(dest.sin_addr));
printf("\n\nClient Connected,\n\nFile Send Successfully\n\n");
FILE* fp = fopen("server.txt","r");
while(!feof(fp))
{
bzero(buf,sizeof(buf));
fread(buf,sizeof(char),50,fp);
write(consocket,buf,50);
}
write(consocket ,"quit1234",50);
fclose(fp);
return 0;
}
}
Client Code
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#define MAXRCVLEN 500
#define PORTNUM 1995
int main(int argc, char *argv[])
{
int mysocket,n;
struct sockaddr_in dest;
mysocket = socket(AF_INET, SOCK_STREAM, 0);
memset(&dest, 0, sizeof(dest));
dest.sin_family = AF_INET;
dest.sin_addr.s_addr = inet_addr("127.0.0.1");
dest.sin_port = htons(PORTNUM);
connect(mysocket, (struct sockaddr *)&dest, sizeof(struct sockaddr));
printf("\n\n CLIENT CONNECTED\n\nFile Received Successfully...\n\n");
char buf[50];
FILE* fp = fopen("client.txt","w");
while(1)
{
bzero(buf,sizeof(buf));
read(mysocket,buf,50);
if(strcmp(buf,"quit1234")==0)
{
break;
}
fprintf(fp,"%s",buf);
}
fclose(fp);
}Now i am trying to read B and display in client , for that i changed the following code and inserted it in to the client code but it say file is alread open..... so i am not able to display the B in client.
What is the point in code i am missing out , how to cahge the following code to display the file B in client.
static const char filename[] = "file.txt";
FILE *file = fopen ( filename, "r" );
if ( file != NULL )
{
char line [ 128 ]; /* or other suitable maximum line size */
while ( fgets ( line, sizeof line, file ) != NULL ) /* read a line */
{
fputs ( line, stdout ); /* write the line */
}
fclose ( file );
}
else
{
perror ( filename ); /* why didn't the file open? */
}
return 0;
}Thank You for readying.
![]() |
Similar Threads
Other Threads in the C Forum
- how to access an application from the Domain Server (Java)
- Need help with expanding a unix path correctly. (C)
- C++ Hardcore Developers (Software Development Job Offers)
- passing data around (C)
- Creating an OS in visual basic 6.0 (Visual Basic 4 / 5 / 6)
- Cannot connect to server (MySQL)
- Playing with RMI in Tiger (Java)
- Using SSH client on win 2000 (*nix Software)
- connection program for sybase (C)
Other Threads in the C Forum
- Previous Thread: Calculate text bounding box size in pixels
- Next Thread: need urgent responce please!
•
•
•
•
Views: 727 | Replies: 6 | Currently Viewing: 1 (0 members and 1 guests)






Linear Mode