1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
void dostuff(int); /* function prototype */
void error(const char *msg) {
perror(msg);
exit(1);
}
int main(int argc, char *argv[]) {
cvInitFont(&font3, CV_FONT_HERSHEY_SIMPLEX, 0.6f, 0.6f, 0, 2); //initiate font
int sockfd, newsockfd, portno, pid;
socklen_t clilen;
struct sockaddr_in serv_addr, cli_addr;
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0)
error("ERROR opening socket");
bzero((char *) &serv_addr, sizeof (serv_addr));
portno = 2010;
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = INADDR_ANY;
serv_addr.sin_port = htons(portno);
if (bind(sockfd, (struct sockaddr *) &serv_addr,
sizeof (serv_addr)) < 0)
error("ERROR on binding");
listen(sockfd, 5);
clilen = sizeof (cli_addr);
time_t start,end;
time (&start);
double difTime;
do {
time (&end);
difTime = difftime(end,start);
cout << "difTime " << difTime << endl;
newsockfd = accept(sockfd,
(struct sockaddr *) &cli_addr, &clilen);
if (newsockfd < 0)
error("ERROR on accept");
pid = fork();
if (pid < 0)
error("ERROR on fork");
if (pid == 0) {
close(sockfd);
dostuff(newsockfd);
exit(0);
} else close(newsockfd);
} while (1);
close(sockfd);
return 0; /* we never get here */
}
void dostuff(int sock) {
int n;
char buffer[256];
memset(buffer,0, 256);
n = read(sock, buffer, 255);
if (buffer == "1") diip1Counter = 0;
if (n < 0) error("ERROR reading from socket");
printf("%s\n", buffer);
n = write(sock, "I got your message", 18);
if (n < 0) error("ERROR writing to socket");
}
|