# 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)
PDFScanner RS - Scan, Make PDF
PDF Scanner RS – Capture, Resize, Enhance & Create PDFs Download: https://play.google.com/store/apps/details?id=com.rssoft.pdfscan...
(2).png)
-
Server #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <...
-
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...
-
ISSUE: Build error on Asterik , when you want test webrtc feature :) checking for uuid_generate_random in -luuid... no checking for uuid...