Reformat to my own standard

No GNU, no GNOME, no Linux Kernel.
This commit is contained in:
Thomas Wade 2018-11-01 08:42:38 +10:30
parent 0e9076d239
commit 01c2f20894
2 changed files with 95 additions and 51 deletions

View File

@ -1,8 +1,3 @@
// client1 - client program for demonstrating data transfer over TCP/IP
// This program complies with the GNU Coding Standards found here:
// https://www.gnu.org/prep/standards/html_node/index.html
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <sys/time.h> #include <sys/time.h>
@ -92,9 +87,9 @@ int main (int argc, char**argv)
m = sendto(sfd, buf, 0, 0, (struct sockaddr *) &sock_serv, l); m = sendto(sfd, buf, 0, 0, (struct sockaddr *) &sock_serv, l);
gettimeofday(&stop, NULL); gettimeofday(&stop, NULL);
duration(&start, &stop, &delta); duration(&start, &stop, &delta);
printf("Nombre d'octets transférés : %lld\n", count); printf("Bytes transferred: %lld\n", count);
printf("Sur une taille total de : %lld \n", sz); printf("Total size: %lld \n", sz);
printf("Pour une durée total de : %ld.%d \n", delta.tv_sec, delta.tv_usec); printf("Total duration: %ld.%d \n", delta.tv_sec, delta.tv_usec);
close(sfd); close(sfd);
return EXIT_SUCCESS; return EXIT_SUCCESS;
} }

View File

@ -1,8 +1,3 @@
// server1 - server program for demonstrating data transfer over TCP/IP
// This program complies with the GNU Coding Standards found here:
// https://www.gnu.org/prep/standards/html_node/index.html
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <sys/time.h> #include <sys/time.h>
@ -34,22 +29,33 @@ int main(int argc, char** argv)
time_t intps; time_t intps;
struct tm* tmi; struct tm* tmi;
/* (A) repalce the following line with suitable getopt() functionality */ /* (A) repalce the following line with suitable getopt() functionality */
if(argc!=2) {perror("Usage ./a.out <num_port> <file2send>\n");exit(3);} if (argc != 2)
{
perror("Usage ./a.out <num_port> <file2send>\n");
exit(3);
}
int l; int l;
int yes = 1; int yes = 1;
/* The following function call should use; Internet version 4 protocols with a sequenced, reliable, two-way connection based byte streams */ /* The following function call should use; Internet version 4 protocols with a sequenced, reliable, two-way connection based byte streams */
sfd = socket( /* Q) What goes here? */ , /* Q) What goes here? */ , 0); sfd = socket( /* Q) What goes here? */ , /* Q) What goes here? */ , 0);
/* See; man socket */ /* See; man socket */
if (sfd == -1) {perror("socket fail");return EXIT_SUCCESS;} if (sfd == -1)
if(setsockopt(sfd, SOL_SOCKET, SO_REUSEADDR,&yes,sizeof(int)) == -1 ) {perror("setsockopt erreur");exit(5);} {
perror("socket fail");
return EXIT_SUCCESS;
}
if (setsockopt(sfd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(int)) == -1 )
{
perror("setsockopt erreur");
exit(5);
}
l = sizeof(struct sockaddr_in); l = sizeof(struct sockaddr_in);
bzero(&sock_serv, l); bzero(&sock_serv, l);
@ -63,7 +69,12 @@ int main(int argc, char** argv)
sock_serv.sin_addr.s_addr = htonl(/* Q) What goes here? */); sock_serv.sin_addr.s_addr = htonl(/* Q) What goes here? */);
/* See; man 4 ip */ /* See; man 4 ip */
if (bind(sfd,(struct sockaddr*)&sock_serv,l) == -1) {perror("bind fail"); exit(EXIT_FAILURE);} if (bind(sfd, (struct sockaddr*) &sock_serv, l) == -1)
{
perror("bind fail");
exit(EXIT_FAILURE);
}
bzero(buffer,BUFFERT); bzero(buffer,BUFFERT);
listen(sfd,BACKLOG); listen(sfd,BACKLOG);
@ -74,34 +85,72 @@ int main(int argc, char** argv)
/* See; man 2 accept */ /* See; man 2 accept */
if (nsid == -1) {perror("accept fail"); return EXIT_FAILURE;} if (nsid == -1)
else { {
if(inet_ntop(AF_INET,&sock_clt.sin_addr,dst,INET_ADDRSTRLEN)==NULL) {perror("erreur socket");exit (4);} perror("accept fail");
return EXIT_FAILURE;
}
else
{
if(inet_ntop(AF_INET, &sock_clt.sin_addr, dst, INET_ADDRSTRLEN) == NULL)
{
perror("erreur socket");
exit (4);
}
clt_port = ntohs(sock_clt.sin_port); clt_port = ntohs(sock_clt.sin_port);
printf("connection : %s:%d\n", dst, clt_port); printf("connection : %s:%d\n", dst, clt_port);
bzero(filename, 256); bzero(filename, 256);
intps = time(NULL); intps = time(NULL);
tmi = localtime(&intps); tmi = localtime(&intps);
bzero(filename, 256); bzero(filename, 256);
sprintf(filename, "saved-file.%d.%d.%d.%d.%d.%d", tmi->tm_mday, tmi->tm_mon+1, 1900+tmi->tm_year, tmi->tm_hour, tmi->tm_min, tmi->tm_sec); sprintf(filename, "saved-file.%d.%d.%d.%d.%d.%d", tmi->tm_mday, tmi->tm_mon+1, 1900+tmi->tm_year, tmi->tm_hour, tmi->tm_min, tmi->tm_sec);
printf("Creating the copied output file : %s\n", filename); printf("Creating the copied output file : %s\n", filename);
if ((fd = open(filename, O_CREAT|O_WRONLY, 0600)) == -1) {perror("open fail"); exit (3);}
if ((fd = open(filename, O_CREAT | O_WRONLY, 0600)) == -1)
{
perror("open fail");
exit(3);
}
bzero(buffer, BUFFERT); bzero(buffer, BUFFERT);
n = recv(nsid, buffer, BUFFERT, 0); n = recv(nsid, buffer, BUFFERT, 0);
while(n) {
if(n==-1) {perror("recv fail");exit(5);} while(n)
if((m=write(fd,buffer,n))==-1) {perror("write fail");exit (6);} {
count=count+m; if (n==-1)
{
perror("recv fail");
exit(5);
}
if ((m=write(fd,buffer,n))==-1)
{
perror("write fail");
exit(6);
}
count += m;
bzero(buffer, BUFFERT); bzero(buffer, BUFFERT);
n = recv(nsid, buffer, BUFFERT, 0); n = recv(nsid, buffer, BUFFERT, 0);
} }
close(sfd); close(sfd);
close(fd); close(fd);
} }
close(nsid); close(nsid);
printf("End of transmission with %s.%d\n", dst, clt_port); printf("End of transmission with %s.%d\n", dst, clt_port);
/* Select the appropriate variable in the following function call argument */ /* Select the appropriate variable in the following function call argument */
printf("Number of octets received : %ld \n", /* Q) What goes here? */); printf("Number of octets received : %ld \n", /* Q) What goes here? */);
return EXIT_SUCCESS; return EXIT_SUCCESS;
} }