Oii,tou este server mas não está calculando direito alguem me pode ajudar:
// Server side C/C++ program to demonstrate Socket programming
#include <iostream>
#include <unistd.h>
#include <stdio.h>
#include <sys/socket.h>
#include <stdlib.h>
#include <netinet/in.h>
#include <string.h>
#include <pthread.h>
#include <iomanip>
#include <cmath>
#define SIZE 70
#define PORT 65432
void * linearregression(void *);
using namespace std;
char buffer[1024] = {0};
char previousBuffer[1024];
int main(int argc, char const *argv[])
{
int server_fd, new_socket, valread;
struct sockaddr_in address;
int opt = 1;
int addrlen = sizeof(address);
char hello[] = "Hello from server";
pthread_t s;
// Creating socket file descriptor
if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == 0)
{
perror("socket failed");
exit(EXIT_FAILURE);
}
// Forcefully attaching socket to the port 65432
if (setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR | SO_REUSEPORT,
&opt, sizeof(opt)))
{
perror("setsockopt");
exit(EXIT_FAILURE);
}
address.sin_family = AF_INET;
address.sin_addr.s_addr = INADDR_ANY;
address.sin_port = htons( PORT );
// Forcefully attaching socket to the port 65432
if (bind(server_fd, (struct sockaddr *)&address,
sizeof(address))<0)
{
perror("bind failed");
exit(EXIT_FAILURE);
}
if (listen(server_fd, 3) < 0)
{
perror("listen");
exit(EXIT_FAILURE);
}
if ((new_socket = accept(server_fd, (struct sockaddr *)&address,
(socklen_t*)&addrlen))<0)
{
perror("accept");
exit(EXIT_FAILURE);
}
while (true){
valread = read( new_socket, buffer, 1024);
buffer[valread]=0;
printf("%s\n",buffer );
pthread_create(&s,NULL,&linearregression,NULL);
pthread_join(s,NULL);
printf(" n\n*******************************************************************************\n\n");
}
send(new_socket, hello, strlen(hello), 0 );
printf("Hello message sent\n");
return 0;
}
void * linearregression(void * arg)
{
int*newsockfd=(int*)arg;
string string1(buffer);
string string2(previousBuffer);
int i = 0;
int j = 0;
int k,n;
float a,b;
double x[n],y[n];
double xsum=0,x2sum=0,ysum=0,xysum=0; //variables for sums/sigma of xi,yi,xi^2,xiyi etc
for(i=1;i<=n;i++)
{
cout<<"x["<< i <<"] = ";
cout<<"y["<< i <<"] = ";
}
for (i=1; i<n; i++)
{
xsum=xsum+x[i]; //calculate sigma(xi)
ysum=ysum+y[i]; //calculate sigma(yi)
x2sum=x2sum+pow(x[i],2); //calculate sigma(x^2i)
xysum=xysum+x[i]*y[i]; //calculate sigma(xi*yi)
}
b = (n*xysum-xsum*ysum)/(n*x2sum-xsum*xsum);
a = (ysum - b*xsum)/n;
/* Displaying value of a and b */
cout<<"Calculated value of a is "<< a << "and b is "<< b << endl;
cout<<"Equation of best fit is: y = "<< a <<" + "<< b<<"x";
return(0);
}
Exemplo de Erro:
20.0,27.267952
Calculated value of a is -nanand b is -nan
Equation of best fit is: y = -nan + -nanx n