| | |
UNIX Client and Server
Please support our C advertiser: Programming Forums - DaniWeb Sister Site
![]() |
•
•
Join Date: Nov 2008
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
•
•
Join Date: Dec 2008
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.
C Syntax (Toggle Plain Text)
send() to send data recv() to receive data
•
•
Join Date: Nov 2008
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
C Syntax (Toggle Plain Text)
#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
C Syntax (Toggle Plain Text)
#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.
C Syntax (Toggle Plain Text)
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
- 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!
| Thread Tools | Search this Thread |
#include adobe ansi api append array arrays asterisks binarysearch changingto char character cm copyimagefile cprogramme creafecopyofanytypeoffileinc csyntax database directory dynamic execv feet fgets file fork framework frequency function getlasterror givemetehcodez global grade gtkgcurlcompiling hacking hardware highest histogram include incrementoperators infiniteloop input interest kernel keyboard kilometer license linked linkedlist linux linuxsegmentationfault list lists locate logical_drives looping loopinsideloop. lowest match matrix meter microsoft motherboard mqqueue number odf opensource overwrite owf pattern pdf performance pointer posix probleminc process program programming radix recursion recv repetition research reversing scripting segmentationfault sequential socket socketprograming standard string systemcall testing threads turboc unix user voidmain() wab windows.h windowsapi






