Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <sys/socket.h>
- #include <sys/types.h>
- #include <arpa/inet.h>
- #include <math.h>
- struct Array{
- int arr[50];
- int size;
- };
- void main(){
- int sockfd = socket(AF_INET, SOCK_STREAM, 0);
- if(sockfd == -1){
- exit(1);
- }
- struct sockaddr_in addr;
- addr.sin_family = AF_INET;
- addr.sin_port = htons(8080);
- addr.sin_addr.s_addr = inet_addr("127.0.0.1");
- int addrsize = sizeof(addr);
- if(bind(sockfd, (struct sockaddr *) &addr, sizeof(addr)) == -1){
- exit(1);
- }
- if(listen(sockfd, 5) == -1){
- exit(1);
- }
- int recvfd = accept(sockfd, (struct sockaddr *)&addr, &addrsize);
- if(recvfd == -1){
- exit(1);
- }
- struct Array inp;
- int r = recv(recvfd, (struct Array *)&inp, sizeof(inp), 0);
- for(int i=0; i<inp.size/2; i++){
- int a = inp.arr[i*2];
- int b = inp.arr[i*2 + 1];
- a %= (int)pow(10.0, i+1);
- a /= (int)pow(10.0, i);
- a *= (int)pow(10.0, i);
- b %= (int)pow(10.0, i+1);
- b /= (int)pow(10.0, i);
- b *= (int)pow(10.0, i);
- if(a > b){
- inp.arr[i*2] -= (a-b);
- inp.arr[i*2+1] += (a-b);
- }
- else{
- inp.arr[i*2] -= (a-b);
- inp.arr[i*2+1] += (a-b);
- }
- }
- send(recvfd, (struct Array *)&inp, sizeof(inp), 0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement