TCP & UDP File Transfer
TCP & UDP File Transfer
Server Code
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <errno.h>
exit(1);
int main() {
socklen_t clilen;
char buf[MAXLINE];
ssize_t n;
listenfd = socket(AF_INET, SOCK_STREAM, 0);
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
servaddr.sin_port = htons(SERV_PORT);
err_sys("bind error");
clilen = sizeof(cliaddr);
fclose(fp);
close(connfd);
close(listenfd);
return 0;
Client Code
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <errno.h>
perror(x);
exit(1);
int sockfd;
char buf[MAXLINE];
ssize_t n;
if (argc != 3) {
exit(1);
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(SERV_PORT);
err_sys("connect error");
fclose(fp);
close(sockfd);
return 0;
Output:
Server Terminal :
Client terminal :
Server Code
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <netinet/in.h>
perror(x);
exit(1);
int main() {
int sockfd;
char buf[MAXLINE];
socklen_t clilen;
ssize_t n;
sockfd = socket(AF_INET, SOCK_DGRAM, 0);
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
servaddr.sin_port = htons(SERV_PORT);
err_sys("bind error");
clilen = sizeof(cliaddr);
while ((n = recvfrom(sockfd, buf, MAXLINE, 0, (struct sockaddr *) &cliaddr, &clilen)) >
0) {
printf("Received %zd bytes\n", n);
err_sys("fwrite error");
fclose(fp);
close(sockfd);
return 0;
Client Code
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <netinet/in.h>
perror(x);
exit(1);
}
int sockfd;
char buf[MAXLINE];
ssize_t n;
if (argc != 3) {
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(SERV_PORT);
err_sys("sendto error");
fclose(fp);
close(sockfd);
return 0;
Output:
Server terminal :
Client terminal :