Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void peer(int port)
- {
- int selfSocket;
- struct sockaddr_in serverAddress;
- char buffer[1024];
- bzero(buffer, 1024);
- selfSocket = socket(AF_INET, SOCK_STREAM,0);
- if(selfSocket < 0)
- {
- printf("Error while opening Socket\n");
- //return 0;
- }
- else
- {
- printf("Client socket created\n");
- }
- struct hostent *server;
- server = gethostbyname("127.0.0.1");
- if (server == NULL)
- {
- fprintf(stderr,"ERROR, no such host\n");
- exit(0);
- }
- serverAddress.sin_family = AF_INET;
- serverAddress.sin_port = htons(port);
- serverAddress.sin_addr = *((struct in_addr *)server->h_addr);;
- bzero(&(serverAddress.sin_zero),8);
- while(connect (selfSocket, (struct sockaddr *)&serverAddress,sizeof(serverAddress))<0)
- sleep(1);
- int flag = 0;
- while(1)
- {
- bzero(buffer, 1024);
- if (flag == 0)
- printf("Enter message: ");
- //fgets(buffer, sizeof(buffer), stdin);
- gets(buffer);
- printf("\n");
- /*if(strcmp(buffer,"\n") == 0)
- printf("ya1\n");*/
- if(strcmp(buffer,"") == 0)
- {
- flag = 1;
- continue;
- }
- else
- flag = 0;
- if(strcmp(buffer, "q") == 0)
- {
- if(send(selfSocket, buffer, 1024, 0) < 0)
- {
- fprintf(stderr,"Error while writing to socket\n");
- exit(0);
- }
- kill(pid, SIGTERM);
- break;
- //close(selfSocket);
- //return ;
- }
- if(strncmp(buffer, "IndexGet", 8) == 0)
- {
- ;
- clientIndexGet(buffer, &selfSocket);
- }
- else if(strncmp(buffer, "FileHash", 8) == 0)
- {
- ;
- //clientFileHash(buffer, &selfSocket);
- }
- else if(strncmp(buffer, "FileDownload", 12) == 0)
- {
- ;
- //clientFileDownload(buffer, &selfSocket);
- }
- else if(strncmp(buffer, "FileUpload", 10) == 0)
- {
- ;
- //clientFileUpload(buffer, &selfSocket);
- }
- else
- {
- if(send(selfSocket, buffer, 1024, 0) < 0)
- {
- fprintf(stderr,"Error while writing to socket\n");
- //exit(0);
- }
- }
- }
- close(selfSocket);
- exit(0);
- //return ;
- }
- void host(int port)
- {
- int selfSocket, peerSocket;
- char buffer[1024];
- socklen_t clientAddressLength;
- struct sockaddr_in clientAddress, serverAddress;
- //bzero((char *) &clientAddress,sizeof(clientAddress));
- char requests[500][200];
- int n;
- int r = 0;
- selfSocket = socket(AF_INET, SOCK_STREAM, 0);
- if(selfSocket < 0)
- {
- fprintf(stderr,"Error while opening Socket\n");
- //return 0;
- }
- else
- {
- printf("Server socket created\n");
- }
- bzero((char *) &serverAddress,sizeof(serverAddress));
- serverAddress.sin_family = AF_INET;
- serverAddress.sin_port = htons(port);
- serverAddress.sin_addr.s_addr = htonl(INADDR_ANY);
- //bzero(&(serverAddress.sin_zero),8); //
- if(bind(selfSocket, (struct sockaddr *)&serverAddress, sizeof(serverAddress))<0)
- {
- fprintf(stderr,"Error while Binding\n");
- exit(0);
- }
- else
- {
- printf("Server Socket successfully binded\n");
- }
- if(listen(selfSocket,10)<0)
- {
- fprintf(stderr,"Error while listening\n");
- exit(0);
- }
- printf("Waiting for client\n");
- fflush(stdout);
- clientAddressLength = sizeof(clientAddress);
- peerSocket = accept(selfSocket, (struct sockaddr *) &clientAddress,&clientAddressLength);
- if (peerSocket < 0)
- {
- fprintf(stderr,"Error while accepting connection\n");
- exit(0);
- }
- else
- {
- printf("Connection accepted\n");
- }
- while(1)
- {
- bzero(buffer,1024);
- n = read(peerSocket,buffer,1024);
- if (n < 0)
- {
- fprintf(stderr,"Error reading from Socket\n");
- exit(0);
- }
- buffer[n] = '\0';
- strcpy(requests[r],buffer);
- //r++;
- if(strcmp(buffer, "q") == 0)
- {
- printf("\nTermination by peer\n");
- kill(pid, SIGTERM);
- break ;
- }
- if(strncmp(buffer, "IndexGet", 8) == 0)
- {
- ;
- serverIndexGet(buffer, &peerSocket);
- }
- else if(strncmp(buffer, "FileHash", 8) == 0)
- {
- ;
- //serverFileHash(buffer, &peerSocket);
- }
- else if(strncmp(buffer, "FileDownload", 12) == 0)
- {
- ;
- //serverFileDownload(buffer, &peerSocket);
- }
- else if(strncmp(buffer, "FileUpload", 10) == 0)
- {
- ;
- //serverFileUpload(buffer, &peerSocket);
- }
- else
- {
- printf("\nMessage from peer : %s\n", buffer);
- printf("Enter Message: ");
- r++;
- }
- fflush(stdout);
- while(waitpid(WAIT_ANY, NULL, WNOHANG) > 0);
- }
- close(peerSocket);
- close(selfSocket);
- exit(1);
- return ;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement