void get_server(receiver_param *rp, struct frame_t *frame_info) { error_code_t e; FILE *stream; long file_size; stream = fopen(frame_info->data, "r"); if(!stream) { if(errno == EACCES) send_error(rp->source_sd, NO_PERMISSION, 0); else if (errno == ENOENT) send_error(rp->source_sd, NO_FILE, 0); return; } file_size = get_file_size(stream); e = send_d(rp, (char*)&file_size, sizeof(long), 0); if(e != OK) { fclose(stream); return; } file_transfer(rp, stream, 1, file_size); fclose(stream); }
void packet_write(int socket, PACKET *packet) { send_i(socket, packet->command); send_i(socket, packet->args_count); for (int i = 0; i < packet->args_count; i ++) { PACKET_ARG *arg = packet->args[i]; send_i(socket, arg->length); send_d(socket, arg->length, arg->arg); } }
error_code_t put(receiver_param *rp, const char *command) // ou sd ao invez do rp { char *file_name; unsigned char name_size; long file_size; error_code_t e; FILE *stream; if (command[3] != ' ' && command[3] != '\0') return INV_CMD; file_name = (char*)&command[4]; name_size = (unsigned char)strlen(file_name); if (name_size > DATA_MAX_SIZE) return BIG_NAME; stream = fopen(file_name, "r"); if (!stream) { switch (errno) { case EACCES: return NO_PERMISSION; case ENOENT: return NO_FILE; } } e = remote_command(rp, 'P', file_name, name_size, NULL); if (e != OK) { fclose(stream); return e; } file_size = get_file_size(stream); // tamanho do arquivo e = send_d(rp, (char*)&file_size, sizeof(long), 1); // talvez colocar mais coisas que o tamanho do arquivo if (e != OK) { fclose(stream); return e; } file_transfer(rp, stream, 2, file_size); fclose(stream); return OK; }
//******** TRI STRIPS ******** virtual void faceCB(CBvert* v, CBface* f) { assert(v && f); glNormal3dv(f->norm().data()); if (v->has_color()) { GL_COL(v->color(), alpha*v->alpha()); } //pass texture coordinates to opengl glTexCoord2dv(att_function->get_attrib(v,f).data()); send_d(v,f); glVertex3dv(v->loc().data()); // vertex coordinates }
int main() { DDRD=0xFF; DDRB=0xFF; int i,sleep=500,blink=50; unsigned int adc_value; PORTD=0xFF; PORTB=0x00; ADCSRA = (1<<ADEN) | (1<<ADPS2) | (1<<ADPS0); ADMUX=0x05; int s; while(1) { ADCSRA |= (1<<ADSC); // Start conversion while (ADCSRA & (1<<ADSC)); s=adc_value = ADCW; //Store ADC result if(s>1000) { PORTB=0xFF; } else { PORTB=0x00; //_delay_ms(5000); } continue; i=s/1000; s=s%1000; send_d(i); _delay_ms(sleep); i=s/100; s=s%100; send_d(i); _delay_ms(sleep); i=s/10; s=s%10; send_d(i); _delay_ms(sleep); //i=s%10; //s=s/10; send_d(s); _delay_ms(sleep); send_d(10); _delay_ms(1000); } }