#include <sys/types.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <string.h>
#include <netdb.h>
#include <stdio.h>
char db[100][1000000];
void error (const char* msg) {perror(msg); exit(0); }
const int BUF_SIZE = 1024;
char db[100][1000000];
int
lookup (
int m,
int u
) {
return db[m][u];
}
void
insert (
int m,
int u
) {
db[m][u] = 1;
}
void
delete (
int m,
int u
) {
db[m][u] = 0;
}
void
db_load (
) {
FILE* q;
int m;
int u;
q = fopen("george", "r");
if (q) {
while(fscanf(q, "%d %d", &m, &u) != EOF) {
if ((m < 100) && (u < 1000000)) {
insert(m, u);
}
}
fclose(q);
}
}
void
db_store (
) {
FILE* q;
int i;
int j;
q = fopen("george", "w");
for (i = 0; i < 100; ++i) {
for (j = 0; j < 1000000; ++j) {
if (lookup(i, j)) fprintf(q, "%d %d\n", i, j);
}
}
fclose(q);
}
int
main (
int argc,
char* argv[]
) {
int sock;
int length;
int n;
socklen_t fromlen;
struct sockaddr_in server;
struct sockaddr_in from;
char buf[BUF_SIZE];
char buffer[BUF_SIZE];
int m;
int u;
int ok;
if (argc != 2) error("ERROR, no port provided\n");
sock = socket(AF_INET, SOCK_DGRAM, 0);
if (sock < 0) error("Opening socket");
length = sizeof(server);
bzero(&server, length);
server.sin_family = AF_INET;
server.sin_addr.s_addr = INADDR_ANY;
server.sin_port = htons(atoi(argv[1]));
if (bind(sock,(struct sockaddr *)&server,length) < 0) error("binding");
fromlen = sizeof(struct sockaddr_in);
db_load();
for (;;) {
ok = 0;
n = recvfrom(sock, buf, BUF_SIZE, 0, (struct sockaddr *)&from, &fromlen);
if (n < 0) error("recvfrom");
buf[n] = 0;
sscanf(buf + 2, "%d %d", &m, &u);
if (m > 99) {
if (u > 1000000) ok = 5;
else ok = 3;
}
else if (u > 1000000) ok = 4;
else {
switch (buf[0]) {
case 'I':
insert(m, u);
db_store();
break;
case 'D':
delete(m, u);
db_store();
break;
case 'L':
ok = !lookup(m, u);
break;
default:
ok = 2;
}
}
buffer[0] = '0' + ok;
n = sendto(sock, buffer, 1, 0, (struct sockaddr *)&from, fromlen);
if (n < 0) error("sendto");
}
}
Monday, December 14, 2015
Sunday, December 13, 2015
Dr. Mayhew's Keypad Program - 12/12/2015
#include <stdio.h>
#include <stdlib.h>
#include <wiringPi.h>
void
blink(){
digitalWrite(0,1);
delay(300);
digitalWrite(0,0);
}
char
get_key(){
int i;
int j;
for (j = 21; j < 25; ++j) {
digitalWrite(j, 1);
}
for (;;) {
for (i = 25; i < 29; ++i) {
if (digitalRead(i)) {
for (j = 21; j < 25; ++j) {
digitalWrite(j, 0);
if (!digitalRead(i)) {
blink();
switch (((i - 25) << 2) | (j - 21)) {
case 0: return '1';
case 1: return '4';
case 2: return '7';
case 3: return 'C';
case 4: return '2';
case 5: return '5';
case 6: return '8';
case 7: return '0';
case 8: return '3';
case 9: return '6';
case 10: return '9';
case 11: return '#';
case 12: return 'A';
case 13: return 'B';
case 14: return 'C';
case 15: return 'D';
}
}
}
}
}
}
}
int
get_num (
int count,
int x
){
char k;
printf("in get number");
while(count){
printf ("\ncount = %d", count);
k = get_key();
printf ("key = %c\n", k);
if (k == '#') return x;
if (('0' <= k) && (k <= '9')){
x = (x * 10) + (k - '0') ;
}
else return -1;
--count;
}
k = get_key();
if (k == '#') return x;
else return -1;
}
int
main()
{
int a;
int i,j;
int x,y,z;
int count;
wiringPiSetup();
pinMode(21, OUTPUT);
pinMode(22, OUTPUT);
pinMode(23, OUTPUT);
pinMode(24, OUTPUT);
pinMode(25, INPUT);
pinMode(26, INPUT);
pinMode(27, INPUT);
pinMode(28, INPUT);
pinMode(0, OUTPUT);
x = get_num( 6,0 );
printf("\nthe number = %d\n" , x );
}
#include <stdlib.h>
#include <wiringPi.h>
void
blink(){
digitalWrite(0,1);
delay(300);
digitalWrite(0,0);
}
char
get_key(){
int i;
int j;
for (j = 21; j < 25; ++j) {
digitalWrite(j, 1);
}
for (;;) {
for (i = 25; i < 29; ++i) {
if (digitalRead(i)) {
for (j = 21; j < 25; ++j) {
digitalWrite(j, 0);
if (!digitalRead(i)) {
blink();
switch (((i - 25) << 2) | (j - 21)) {
case 0: return '1';
case 1: return '4';
case 2: return '7';
case 3: return 'C';
case 4: return '2';
case 5: return '5';
case 6: return '8';
case 7: return '0';
case 8: return '3';
case 9: return '6';
case 10: return '9';
case 11: return '#';
case 12: return 'A';
case 13: return 'B';
case 14: return 'C';
case 15: return 'D';
}
}
}
}
}
}
}
int
get_num (
int count,
int x
){
char k;
printf("in get number");
while(count){
printf ("\ncount = %d", count);
k = get_key();
printf ("key = %c\n", k);
if (k == '#') return x;
if (('0' <= k) && (k <= '9')){
x = (x * 10) + (k - '0') ;
}
else return -1;
--count;
}
k = get_key();
if (k == '#') return x;
else return -1;
}
int
main()
{
int a;
int i,j;
int x,y,z;
int count;
wiringPiSetup();
pinMode(21, OUTPUT);
pinMode(22, OUTPUT);
pinMode(23, OUTPUT);
pinMode(24, OUTPUT);
pinMode(25, INPUT);
pinMode(26, INPUT);
pinMode(27, INPUT);
pinMode(28, INPUT);
pinMode(0, OUTPUT);
x = get_num( 6,0 );
printf("\nthe number = %d\n" , x );
}
Friday, December 4, 2015
Database db.c - 12/02/2015 Dr.Mayhew
#include <stdlib.h>
#include <stdio.h>
char db[100][1000000];
int
lookup (
int m,
int u
) {
return db[m][u];
}
void
insert (
int m,
int u
) {
db[m][u] = 1;
}
void
delete (
int m,
int u
) {
db[m][u] = 0;
}
void
db_load (
) {
FILE* q;
int m;
int u;
q = fopen("george", "r");
if (q) {
while(fscanf(q, "%d %d", &m, &u) != EOF) {
if ((m < 100) && (u < 1000000)) {
insert(m, u);
}
}
fclose(q);
}
}
void
db_store (
) {
FILE* q;
int i;
int j;
q = fopen("george", "w");
for (i = 0; i < 100; ++i) {
for (j = 0; j < 1000000; ++j) {
if (lookup(i, j)) fprintf(q, "%d %d\n", i, j);
}
}
fclose(q);
}
int
main (
) {
FILE* q;
int m;
int u;
int i;
int j;
db_load();
insert(59, 600);
insert(59, 700000);
for (i = 0; i < 100; ++i) {
for (j = 0; j < 1000000; ++j) {
if (lookup(i, j)) printf("%d %d\n", i, j);
}
}
db_store();
}
#include <stdio.h>
char db[100][1000000];
int
lookup (
int m,
int u
) {
return db[m][u];
}
void
insert (
int m,
int u
) {
db[m][u] = 1;
}
void
delete (
int m,
int u
) {
db[m][u] = 0;
}
void
db_load (
) {
FILE* q;
int m;
int u;
q = fopen("george", "r");
if (q) {
while(fscanf(q, "%d %d", &m, &u) != EOF) {
if ((m < 100) && (u < 1000000)) {
insert(m, u);
}
}
fclose(q);
}
}
void
db_store (
) {
FILE* q;
int i;
int j;
q = fopen("george", "w");
for (i = 0; i < 100; ++i) {
for (j = 0; j < 1000000; ++j) {
if (lookup(i, j)) fprintf(q, "%d %d\n", i, j);
}
}
fclose(q);
}
int
main (
) {
FILE* q;
int m;
int u;
int i;
int j;
db_load();
insert(59, 600);
insert(59, 700000);
for (i = 0; i < 100; ++i) {
for (j = 0; j < 1000000; ++j) {
if (lookup(i, j)) printf("%d %d\n", i, j);
}
}
db_store();
}
Subscribe to:
Posts (Atom)