Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - nosoqui

#1
Tengo el siguiente problema.... el programa deja pasar un lapso de tiempo y mira si hay algo para leer, tanto en un socket(una conexión), como en la entrada estandar(con la llamada select() ), pero el problema es que cuando recibo del socket algo, el programa ya no es capaz de leer nada de la entrada estandar, es como si el socket bloqueara la entrada o algo. La parte del codigo conflictiva sería algo como sígue:
*Asumimos que la conexión está manejada por el descriptor newcon



while(1)
{
FD_ZERO(&fds);
FD_SET(newcon,&fds);
FD_SET(STDIN_FILENO,&fds);
select(newcon+1,&fds,NULL,NULL,&intervalo);

if(FD_ISSET(newcon,&fds))
{
while(((sizerec=recv(newcon,buffer,BUFFERSIZE,0))>0)
  fwrite(buffer,sizeof(char),sizerec,stdout);
}
if(FD_ISSET(STDIN_FILENO,&fds))
{
scanf("%[^\n]s",envbuffer); // asumimos un buffer muy grande
send(newcon,envbuffer,strlen(envbuffer),0);
}


}



Saludos y gracias
#2
Desarrollo Web / sobre la optimización de CGI
4 Septiembre 2011, 16:59 PM
Saludos a todos!
Mi objetivo es usar un programa hecho en c para el tema de programación dinámicas de webs!, pero necesito optimizar el tiempo al máximo!! la duda es la siguiente, es posible hacer un programa que tarde lo mínimo en ponerse en funcionamiento, cómo se podría optimizar ese tiempo??? qué factores influyen? y cuanto influyen cada uno de esos factores?
en principio mi idea era, programar la parte más funcional y pesada del programa como si fuera un servidor esperando peticiones y con un montón de hilos abiertos, teniendo la pagina linkeada a un cliente(poco pesado) que se encargara unicamente de hacer las peticiones a la otra parte de ese modo, el retardo se provoca por la apertura de un programa ligero mientas que la parte "gorda" está abierta esperando peticiones, pero ¿es posible que el apache tenga varías instancias del programa "gordo" esperando las peticiones para ahorra tiempo?
agradezco cualquier idea sobre el tema
Saludos y gracias!
#3
GNU/Linux / extraer drivers de un live
19 Julio 2011, 21:23 PM
Mi situción es la siguiente:
Tengo un portatil con procesador amd II neo K145, tarjeta de red atheros AR8151
y tarjeta gráfica ATI radeon HD4225....
Me vino con un windows 7 y estoy teniendo problemas para instalar un Slackware, en primer lugar tuve que cocinar un pen drive para arrancar el instalador desde allí... pero al terminar la instalación me encuentro con que me faltan casí todos los drivers... he arrancado lives cd's como knoppix o backtrack y veo que se detecta casí todo.
¿Sería facil extraer los drivers de los lives para instalarlos en mi distribución instalada en el disco duro? ¿tienene todos los drivers forma de módulo?
saludos y gracias!
#4
Redes / interconexión de nodos
8 Mayo 2011, 12:42 PM
Saludos foreros!
Mi duda es sobre el funcionamiento de los mecanismos de determinados programas p2p
Por ejemplo el Skype.... este requiere una conexión directa entre dos usuarios
O cuando se envia un archivo por msn.... mi pregunta es: ¿cómo funciona el mecanismo que permite que se establezca esta conexión pasando por el router de las respectivas redes locales de cada uno?

Sabemos que si nosotros establecemos una conexión con un servidor, nuestro router tiene el mecanismo NAT para saber que los paquetes entrantes de esa conexión deben ir a mi PC.... pero ¿qué ocurre cuando un servidor como el del Skype tiene que hacer que se establezcan una conexión directa entre dos PC's y ninguno de ellos a tenido que configurar su router?
Espero que se entienda mi duda

Saludos y gracias
#5
Scripting / vbscript para comprobar conexiones
17 Marzo 2011, 15:06 PM
Saludos a todos
He hecho un script a modo de ejercicio(llevo poco con vbscript)
La secuencia que desarrolla es: comprobar conexiones cada x segundos las cuales llevan la palabra que te interesa(en mi caso ESTABLISHED, para conexiones establecidas), despues te sale un dialogo, si le das a sí, intenta cerrarlo si el das a no... la conexión se guardará en un diccionario para que no vuelva a preguntarte por la misma conexión y si le das a cancelar... se cerrará el script....
Cada vez que el script comprueba la conexión sale una consola por cada comando que ejecuta( he conseguido ponerlo de fondo ) y mi pregunta es la siguiente... sabéis alguna manera de que la consola se oculte o salga minimizada por defecto?
he leido sobre el comando run... pero este no me deja interceptar la salida de los comandos.
He aquí el script(quizá a alguien le interese)

dim dict
set dict=createobject("Scripting.Dictionary")
set ob1=createobject("wscript.shell")
cadena=inputbox("Cadena que buscará en las conexiones","","ESTABLISHED")
segundos=inputbox("Milisegundos que pasarán has volver a comprobar","","3000")
do
set program=ob1.exec("netstat -ano")
set tl=ob1.exec("tasklist")
tls=split(tl.stdout.readall,vbnewline)
do
linea=program.stdout.readline
if (instr(linea,cadena)<>0) and not( dict.Exists(linea) ) then
alinea=split(linea)

for each elemento in alinea
if isNumeric(elemento) then
for each linea2 in tls
if (instr(linea2," " & elemento & " ")<>0) then
res=msgbox(linea & vbnewline & linea2,vbyesnocancel,"¿Cerrar?")
if res=vbyes then
set mata=ob1.exec("taskkill /F /pid " & elemento)
msgbox mata.stdout.readall & vbnewline & mata.stderr.readall
end if
if res=vbno then
dict( linea ) = 0
end if
if res=vbcancel then
wscript.quit
end if

end if
next
end if
next
end if
loop until program.stdout.atendofstream
wscript.sleep cInt(segundos)

loop


saludos y gracias