#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <fcntl.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#define serv_tp 6880
#define serv_ha "127.0.0.1"
int main(){
int sockfd,newsockfd,clilen,n,fd;
struct sockaddr_in ca,sa;
char filename[25],buf[1000];
if((sockfd=socket(AF_INET,SOCK_STREAM,0)<0))
printf("server not opened at all\n"); printf("opened successfully\n"); sa.sin_family=AF_INET;
sa.sin_addr.s_addr=htonl(INADDR_ANY);
sa.sin_port=htons(serv_tp);
if((bind,(sockfd,(struct sockaddr*)&sa,sizeof(sa)))<0)
printf("not bind properly\n"); else
listen(sockfd,5);
printf("waiting for the client\n"); for(;;){
clilen=sizeof(ca);
newsockfd=accept(sockfd,(struct sockaddr*)&ca,&clilen);
if(newsockfd<0)
else
printf("server connected successfully\n"); n=read(newsockfd,filename,25);
filename[n]='\0';
printf("server is found at %s ready to tranfer\n",filename
); fd=open(filename,O_RDONLY);
n=read(fd,buf,1000);
buf[n]='\0';
write(newsockfd,buf,n);
close(newsockfd);
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgojaW5jbHVkZSA8dW5pc3RkLmg+CiNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KI2luY2x1ZGUgPGZjbnRsLmg+CiNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CiNpbmNsdWRlIDxhcnBhL2luZXQuaD4KI2RlZmluZSBzZXJ2X3RwIDY4ODAKI2RlZmluZSBzZXJ2X2hhICIxMjcuMC4wLjEiCgppbnQgbWFpbigpewogICAgaW50IHNvY2tmZCxuZXdzb2NrZmQsY2xpbGVuLG4sZmQ7CiAgICBzdHJ1Y3Qgc29ja2FkZHJfaW4gY2Esc2E7CiAgICBjaGFyIGZpbGVuYW1lWzI1XSxidWZbMTAwMF07CiAgICBpZigoc29ja2ZkPXNvY2tldChBRl9JTkVULFNPQ0tfU1RSRUFNLDApPDApKQogICAgcHJpbnRmKCJzZXJ2ZXIgbm90IG9wZW5lZCBhdCBhbGxcbiIpOwogICAgcHJpbnRmKCJvcGVuZWQgc3VjY2Vzc2Z1bGx5XG4iKTsKICAgIHNhLnNpbl9mYW1pbHk9QUZfSU5FVDsKICAgIHNhLnNpbl9hZGRyLnNfYWRkcj1odG9ubChJTkFERFJfQU5ZKTsKICAgIHNhLnNpbl9wb3J0PWh0b25zKHNlcnZfdHApOwoKICAgIGlmKChiaW5kLChzb2NrZmQsKHN0cnVjdCBzb2NrYWRkciopJnNhLHNpemVvZihzYSkpKTwwKQogICAgICBwcmludGYoIm5vdCBiaW5kIHByb3Blcmx5XG4iKTsKICAgICAgZWxzZQogICAgcHJpbnRmKCJib3VuZCBwcm9wZXJseVxuIik7CiAgICBsaXN0ZW4oc29ja2ZkLDUpOwogICAgcHJpbnRmKCJ3YWl0aW5nIGZvciB0aGUgY2xpZW50XG4iKTsKICAgIGZvcig7Oyl7CiAgICAgICAgY2xpbGVuPXNpemVvZihjYSk7CiAgICAgICAgbmV3c29ja2ZkPWFjY2VwdChzb2NrZmQsKHN0cnVjdCBzb2NrYWRkciopJmNhLCZjbGlsZW4pOwogICAgICAgIGlmKG5ld3NvY2tmZDwwKQogICAgICAgIHByaW50Zigic2VydmVyIGVycm9yXG4iKTsKICAgICAgICBlbHNlCiAgICAgICAgcHJpbnRmKCJzZXJ2ZXIgY29ubmVjdGVkIHN1Y2Nlc3NmdWxseVxuIik7CiAgICAgICAgbj1yZWFkKG5ld3NvY2tmZCxmaWxlbmFtZSwyNSk7CiAgICAgICAgZmlsZW5hbWVbbl09J1wwJzsKICAgICAgICBwcmludGYoInNlcnZlciBpcyBmb3VuZCBhdCAlcyByZWFkeSB0byB0cmFuZmVyXG4iLGZpbGVuYW1lKTsKICAgICAgICBmZD1vcGVuKGZpbGVuYW1lLE9fUkRPTkxZKTsKICAgICAgICBuPXJlYWQoZmQsYnVmLDEwMDApOwogICAgICAgIGJ1ZltuXT0nXDAnOwogICAgICAgIHdyaXRlKG5ld3NvY2tmZCxidWYsbik7CiAgICAgICAgY2xvc2UobmV3c29ja2ZkKTsKICAgICAgICBleGl0KDApOwogICAgfQogICAgcmV0dXJuIDA7Cn0=