# define _GNU_SOURCE # include <stdio.h> # include <math.h> # include <stdlib.h> # include <pthread.h> # include <stdlib.h> pthread_mutex_t mux = PTHREAD_MUTEX_INITIALIZER; struct p2p{ int st; int en; }; void *primeChk(void* val); int main() { pthread_t thread1,thread2,thread3,thread4; struct p2p valu1,valu2,valu3,valu4; int j,ret1,ret2,ret3,ret4; cpu_set_t cpuset; // pthread_setaffinity_np(thread, sizeof(cpu_set_t), &cpuset); valu1.st = 1; valu1.en = 5000; valu2.st = 5001; valu2.en = 10000; valu3.st = 10001; valu3.en = 15000; valu4.st = 15001; valu4.en = 20000; // initialization CPU_ZERO(&cpuset); CPU_SET(0,&cpuset); pthread_setaffinity_np(thread1, sizeof(cpu_set_t), &cpuset); ret1 = pthread_create(&thread1,NULL,&primeChk,(void*)&valu1); //CPU_ZERO(&cpuset); CPU_SET(1,&cpuset); pthread_setaffinity_np(thread2, sizeof(cpu_set_t), &cpuset); ret2 = pthread_create(&thread2,NULL,&primeChk,(void*)&valu2); // CPU_ZERO(&cpuset); /* CPU_SET(2,&cpuset); pthread_setaffinity_np(thread3, sizeof(cpu_set_t), &cpuset); ret3 = pthread_create(&thread3,NULL,&primeChk,(void*)&valu3); CPU_SET(3,&cpuset); pthread_setaffinity_np(thread4, sizeof(cpu_set_t), &cpuset); ret4 = pthread_create(&thread4,NULL,&primeChk,(void*)&valu4); */ pthread_join(thread1,NULL); pthread_join(thread2,NULL); // pthread_join(thread3,NULL); // pthread_join(thread4,NULL); return 0; } void *primeChk(void *val) { struct p2p *valu = (struct p2p *)val; int str,end,i,k,j,l,m; // pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset); str = valu->st; end = valu->en; if(str == 1) printf("%d",++str); pthread_mutex_lock(&mux); for(i=str;i<=end;i++) { k = sqrt(i);l = 0; for(j=2;j<=k+1;j++) if(i % j == 0) { l = 1;break; } if(l == 0)printf(" %d",i); } pthread_mutex_unlock(&mux); //pthread_getaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset); // printf("\nSet returned by pthread_getaffinity_np() contained:\n"); // for (j = 0; j < CPU_SETSIZE; j++) // if (CPU_ISSET(j, &cpuset)) // printf(" CPU %d\n", j); }
Thursday, October 20, 2011
Multithreading in C in Different CPU core
Wednesday, October 19, 2011
UDP server client in c
Server
#include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <stdio.h> #include <unistd.h> #include <errno.h> #include <string.h> #include <stdlib.h> int main() { int sock; int addr_len, bytes_read; char recv_data[1024],send_data[1024]; struct sockaddr_in server_addr , client_addr; if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) == -1) { perror("Socket"); exit(1); } server_addr.sin_family = AF_INET; server_addr.sin_port = htons(5000); server_addr.sin_addr.s_addr = INADDR_ANY; bzero(&(server_addr.sin_zero),8); if (bind(sock,(struct sockaddr *)&server_addr, sizeof(struct sockaddr)) == -1) { perror("Bind"); exit(1); } addr_len = sizeof(struct sockaddr); printf("\nUDPServer Waiting for client on port 5000"); fflush(stdout); int count = 0,i; char a[20][10],d[20][10]; strcpy(a[0],"A"); strcpy(a[1],"B"); strcpy(a[2],"C"); strcpy(a[3],"D"); strcpy(d[0],"123"); strcpy(d[1],"124"); strcpy(d[2],"100"); strcpy(d[3],"99"); while (1) { bytes_read = recvfrom(sock,recv_data,1024,0, (struct sockaddr *)&client_addr, &addr_len); recv_data[bytes_read] = '\0'; printf("\n(%s , %d) said : ",inet_ntoa(client_addr.sin_addr), ntohs(client_addr.sin_port)); printf("%s", recv_data); printf("SEND : "); // gets(send_data); int p = 0; for(i=0;i<4;i++) { if(strcmp(recv_data,d[i]) == 0) { strcpy(send_data,a[i]);p=1; } } if(p == 0) strcpy(send_data,"No one on that role."); sendto(sock,send_data,strlen(send_data),0,(struct sockaddr *)&client_addr,sizeof(struct sockaddr)); fflush(stdout); } return 0; }CLIENT
#include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> #include <stdio.h> #include <unistd.h> #include <errno.h> #include <string.h> #include <stdlib.h> int main() { int sock,bytes_recv,sin_size; struct sockaddr_in server_addr; struct hostent *host; char send_data[1024],recv_data[1024]; host= (struct hostent *) gethostbyname((char *)"127.0.0.1"); if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) == -1) { perror("socket"); exit(1); } server_addr.sin_family = AF_INET; server_addr.sin_port = htons(5000); server_addr.sin_addr = *((struct in_addr *)host->h_addr); bzero(&(server_addr.sin_zero),8); sin_size = sizeof(struct sockaddr); while (1) { printf("Type Something (q or Q to quit):"); gets(send_data); if ((strcmp(send_data , "q") == 0) || strcmp(send_data , "Q") == 0) break; else sendto(sock, send_data, strlen(send_data), 0, (struct sockaddr *)&server_addr, sizeof(struct sockaddr)); bytes_recv = recvfrom(sock,recv_data,1024,0,(struct sockaddr *)&server_addr,&sin_size); recv_data[bytes_recv]= '\0'; printf("Received :%s\n",recv_data); } }
Sunday, October 16, 2011
TCP server client in C
Client Code
#include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <netdb.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #include <errno.h> int main() { int sock, bytes_recieved; char send_data[1024],recv_data[1024]; struct hostent *host; struct sockaddr_in server_addr; host = gethostbyname("127.0.0.1"); sock = socket(AF_INET, SOCK_STREAM,0); server_addr.sin_family = AF_INET; server_addr.sin_port = htons(5000); server_addr.sin_addr = *((struct in_addr *)host->h_addr); bzero(&(server_addr.sin_zero),8); connect(sock, (struct sockaddr *)&server_addr,sizeof(struct sockaddr)); while(1) { bytes_recieved=recv(sock,recv_data,1024,0); recv_data[bytes_recieved] = '\0'; printf("\nRecieved data = %s " , recv_data); printf("\nSend Data :"); gets(send_data); send(sock,send_data,strlen(send_data), 0); } return 0; }
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <errno.h> #include <string.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> int main() { int sock, connected, bytes_recieved , true = 1; char send_data [1024] , recv_data[1024]; struct sockaddr_in server_addr,client_addr; int sin_size; sock = socket(AF_INET, SOCK_STREAM, 0); // setsockopt(sock,SOL_SOCKET,SO_REUSEADDR,&true,sizeof(int)); server_addr.sin_family = AF_INET; server_addr.sin_port = htons(5000); server_addr.sin_addr.s_addr = INADDR_ANY; bzero(&(server_addr.sin_zero),8); printf("%d\n",sock); bind(sock, (struct sockaddr *)&server_addr, sizeof(struct sockaddr)); listen(sock, 5); printf("\nTCPServer Waiting for client on port 5000"); fflush(stdout); int count = 0,i; char a[20][10],d[20][10]; strcpy(a[0],"A"); strcpy(a[1],"B"); strcpy(a[2],"C"); strcpy(a[3],"D"); strcpy(d[0],"123"); strcpy(d[1],"124"); strcpy(d[2],"100"); strcpy(d[3],"99"); while(1) { sin_size = sizeof(struct sockaddr_in); connected = accept(sock, (struct sockaddr *)&client_addr,&sin_size); printf("\n I got a connection from (%s , %d)", inet_ntoa(client_addr.sin_addr),ntohs(client_addr.sin_port)); while (1) { ++count; printf("\n SEND : "); //gets(send_data); if(count == 1) strcpy(send_data,"Welcome to TCPServer"); send(connected, send_data,strlen(send_data), 0); bytes_recieved = recv(connected,recv_data,1024,0); recv_data[bytes_recieved] = '\0'; printf("\n RECIEVED DATA = %s " , recv_data); int p = 0; for(i=0;i<4;i++) { if(strcmp(recv_data,d[i]) == 0) { strcpy(send_data,a[i]);p=1; } } if(p == 0) strcpy(send_data,"No one on that role."); fflush(stdout); } } close(sock); return 0; }
Subscribe to:
Posts (Atom)
How to enable hotspot in TPG iPhone
By default, the hotspot does not work on the phone. It will ask you to contact the provider. This video will help you bypass the network ...
-
There is none who can replace him.At least the standard which he create in is life time in the running literature it never be replaceable.Th...
-
Server #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <...
-
Error: curl: (35) Unknown SSL protocol error Cause: For node.js https connection you are using invalid certificate. Invalid certificate...