• Lunes 18 de Noviembre de 2024, 14:53

Mostrar Mensajes

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


Mensajes - Bicholey

Páginas: 1 ... 24 25 [26] 27 28 ... 63
626
C/C++ / Re: Problema Con Metodo De Punto Fijo
« en: Viernes 9 de Marzo de 2007, 16:19 »
:D  :D  :D


El programa ha ejecutado una instruccion no valida y sera cerrado volcado de pila bla bla bla ...

eso me voto a mi.

627
PHP / Truncate 'tabla';
« en: Viernes 9 de Marzo de 2007, 02:28 »
:P  :P  :P  :P  :P  :P

Hola amigos del foro os necesito un poco de teorìa, bueno pues resulta que estoy usando el Easyphp y cuando trunco una tabla me elimina todos los elementos dados de alta, hasta todo bien, pero tengo un campo llamado indice que es una llave primaria autoincrementable pero que no regresa a cero, es decir si antes de borrar todos los registros habia 10 elementos, cuando borro todos estos y vuelvo a dar de alta un nuevo elemento el indice comienza en 11 en vez de uno , esto a que se debe y como puedo solucionarlo, cabe destacar que mi base de datos es INNODB.

628
La taberna del BIT / Re: A Todos Nos Ha Pasado
« en: Viernes 9 de Marzo de 2007, 01:55 »
Cita de: "Angel38"
No problem compadre, yo nunca he hablado con una sola novia, siempre son dos o más las que estan presentes y no hablamos mucho, me entiendes jejeje ;) .
 :P  :P  :P  :P  :P


Si no platican entonces no se que haran.
Acaso se comunicaran cn señas o con gestos.

629
La taberna del BIT / Re: La Chica Mas Bella V 2.0
« en: Viernes 9 de Marzo de 2007, 01:51 »
:P  :P  :P  :P

Tambien en nuestra patria hay:



630
La taberna del BIT / Re: A Todos Nos Ha Pasado
« en: Viernes 9 de Marzo de 2007, 01:46 »
Cita de: "Angel38"
A mi jamás me ha pasado eso.

Es más, no sabia que eso le sucedia a los hombres. Todas las mujeres que me han gustado me han correspondido, y hasta al mismo tiempo.

Ustedes compadres si que estan graves. :P
:P  :P  :P  :P


Como lo dije hay gente que no lo quiere ver:
He aqui el ejemplo.


Angel:  Hola mi amor como estas

La novia de Angel: Otra vez tu.

Angel: Si tambièn me da gusto verte.

La novia de Angel: Bueno y ahora que quieres.
 
Angel: Si yo tambien te quiero.

La novia de Angel: Ya viste a ese chavo esta bien guapo.

Angel: Hay me sonrojas me gusta que me digas guapo.

30 minutos despues.

Angel: Bueno mi vida ya me voy a trabajar para comprarte el vestido que tanto te gusta.

La novia de Angel: Por fin ya se me habia hecho una eternidad.

Angel: Si ami tambien se me hace largo la espera para volver a verte.





 :lol:  :lol:  :lol:  :lol:  :lol:  :lol:

No te la creas my friend es solo un chascarillo.   ;)  ;)

631
La taberna del BIT / Re: A Todos Nos Ha Pasado
« en: Viernes 9 de Marzo de 2007, 01:21 »
:P  :P  :P  :P


Lo peor es que hay veces que no nos queremos dar cuenta.

632
La taberna del BIT / Re: Yo Contra El Sw Libre... O Los Que Eran..
« en: Viernes 9 de Marzo de 2007, 01:20 »
:lol:  :lol:  :lol:  :lol:


Nahh solo a nosotros nos importa si es freesoft si es de paga si es de microsoft la verdad es que ala mayoria de la gente eso le importa un cacahuate las empresas los corporativos solo quieren soluciones a problemas especificos, lo unico que quieren es manejo correcto de sus bases de datos les vale si usas sqlserver o mysql obvio la mayoria quiere soluciones para Windows porque la mayoria tiene ese sistema operativo fuera de eso no le importa si es delphi si es c# o lo que se te ocurra siempre y cuando sea funcional y presentable.

633
La taberna del BIT / Re: Felicidades Tania_d
« en: Jueves 8 de Marzo de 2007, 21:04 »
:P  :P  :P  :lol:  :lol:  :lol:  :D  :D  :D  :D  :D  :D

634
PHP / Insertar Campo En Mi Tabla
« en: Jueves 8 de Marzo de 2007, 19:35 »
:P  :P  :P  :P  :P


Holas amigos de solocodigo, estoy trabajando en un sistema en php y tengo una tabla que contiene las caracteristicas del personal que labora aquì en campos como nombre, rfc, cargo, extension, pero me dicen que quiza en un futuro se asigne un numero de identidad a cada miembro y bueno para cuando esto ocurra el sistema ya estara terminado, mi pregunta es si se puede hacer que el usuario agregue un campo en mi tabla sin tener que modificar codigo, se tendra que hacer manualmente.
Os digo que vos usais el easyphp y bueno espero sus recomendaciones.

635
Dudas informáticas / Re: Urgente
« en: Jueves 8 de Marzo de 2007, 17:56 »
:lol:  :lol:  :lol:  :lol:

No creo que nadie se tome la molestia de enviarte el httptunnel a tu mail, porque no te lo envias tu mismo desde tu casa.

636
MySQL / Re: Relacionales!
« en: Jueves 8 de Marzo de 2007, 16:34 »
:P  :P  :P  :P  :P

El primer enlace esta excelente, he comenzado a leerlo y es ameno y empieza desde el principio os recomiendo a todo aquellos nuevos en estos temas.

Gracias por el link.

637
Visual Basic para principiantes / Re: Necesito Una Informacion
« en: Jueves 8 de Marzo de 2007, 16:16 »
:P  :P  :P

En efecto el VB6 quedara obsoleto , en mi trabajo utilizamos vb.net sql
php mysql en esas plataformas he estado desarrollando, y el VB6.0 lo dejaron hace 3 años en el lugar donde trabajo.


Ahh por cierto este es un buen lugar para aprender, consiguete un buen tutorial el programa en el cual vas a desarrollar y aqui te iremos ayudando en lo que se pueda.

638
Dudas informáticas / Re: Aumentar El Alcance De Un Sistema !!
« en: Jueves 8 de Marzo de 2007, 16:09 »
:P  :P  :P  :P

Realmente no es muy dificil ya que el scaner te devuelve automaticamente un numero el cual lo podeis relacionar en una base de datos lo complicado es conseguir un codigo el cual sea gratuito pero si buscas ya sea tratado ese tema en este foro.

639
La taberna del BIT / Re: 8 De Marzo, Día De La Mujer
« en: Jueves 8 de Marzo de 2007, 16:07 »
:P  :P  :P  :P


Por la igualdad de derechos y oportunidades y por la no discrimaciòn del sexo femenino.

Y para todas las mujeres que conozco que quiero y que amo: Felìz dìa no solo hoy sino siempre.

640
Dudas informáticas / Skype !!!!!
« en: Jueves 8 de Marzo de 2007, 03:12 »
:P  :P  :P  :P  :P  :P

Hola muchachos de solocodigo. Ultimamenete he eschado mucho acerca de las llamadas a celulares y de larga distancia mediante Skype y lo que me han comentado suena bastante interesante, pero he buscado informacion en la red y solo me salen empresas que te conectan VoIP y que el celular con Skype y bueno os queria preguntar si uds tienen informacion un poco mas especifica y veras sobre esta tecnologia ...

641
Sobre los Foros de SoloCodigo / Re: Caducidad De Los Mensajes
« en: Jueves 8 de Marzo de 2007, 01:32 »
Cita de: "Angel_K_ido"
Bueno, yo creo que el iniciador de una discución no es el único que aprovecha sus respuestas. A ustedes tambíen le habrá pasado esto:....
Estás buscando info sobre cierto tema y  google te ofrece un link a un foro con la pregunta que exactamente necesitas. Entras y ..... "NADA".
Por eso creo que es útil responder a tódos los mensajes siempre y cuando sea para aportar conocimientos. De esta forma los foros crecen y se completan en su contenido.

Saludos compañeros
 :P  :P  :P  :P  :P

En efecto lo que me paso muchas veces al entrar en algunos foros era que el buscador tenia la respuesta indicada para mi problema y al hora de entrar simplemente el post ya habia sido borrado y cai en este foro por eso mismo porque un post del año del caldo resolvio mi problema que en es entonces tenia que era de C++ y ya despues me registre y mi primer post fue con algo de asm si màs no recuerdo.

642
La taberna del BIT / Re: Cual Fue Tu Primer Post????
« en: Jueves 8 de Marzo de 2007, 01:27 »
:lol:  :lol:  :lol:  :lol:


Ahh si yo tambien recuerdo que despuès me entere como era Eternal. hasta eso que el me respondio y me ayudo ya despuès tuve un pequeño altercado con Eternal como lo han tenido muchos en este foro pero en fin nadie es perfecto.

643
Dudas informáticas / Re: Aumentar El Alcance De Un Sistema !!
« en: Jueves 8 de Marzo de 2007, 01:18 »
:P  :P  :P  :P

Se me ocurre que le falta llevar el control de existencias en el almacen es decir si tengo 20 productos "X" y en el dìa vendi 18 , avisar al administrador que el producto "x" esta por terminarse en existencia y asi re abastecer antes de que se termine , otro punto seria tener un scaner o lector de codigo de barras para llevar un control similar con todo el producto que este por caducar y automaticamente enviar un mensaje de tal o cual producto esta a punto de caducar.

644
Dudas informáticas / Re: Urgente
« en: Jueves 8 de Marzo de 2007, 00:51 »
:P  :P  :P

No tienes que abrir varios hilos para lo mismo continua la discucion en uno solo.
 :angry:

no creo que sea un spyware, mas bien cuando termina turno simplemente bloquean los puertos, porque no lo se quiza para evitar el espionaje corporativo, como salir hay varias formas una es la que dices httptunnel otra es cambiar el puerto mediante el cual navegas.
Citar
La solución que yo he encontrado es tener un servidor externo cuya misión es recibir peticiones web por el puerto 443 y reenviarlas a la dirección adecuada por el puerto 80. De ésta manera, desde el trabajo, realizo la petición de conexión segura por el puerto 443 a la dirección donde se encuentra el programa "pasarela". El proxy intenta realizar la conexíon segura con dicha IP, el programa pasarela lee entonces la cabecera HTTP y hace la petición al servidor adecuado por el puerto 80, que responde de vuelta a la pasarela, ésta confirma al proxy la conexión segura y reenvia los datos recogidos al proxy que, al estar bajo conexión segura, no filtra nada y entrega todo a mi PC en el puesto de trabajo.

El código fuente del programa pasarela lo coloco aquí:

Código: Text
  1.  
  2. //---------------------------------------------------------------------------
  3. #ifndef TunnelSocketsH
  4. #define TunnelSocketsH
  5. //---------------------------------------------------------------------------
  6. #include
  7. //---------------------------------------------------------------------------
  8. #define TNLSCK_WAIT_TIME 5000
  9. #define TNLSCK_RETRIES 6
  10. //---------------------------------------------------------------------------
  11. namespace NsHttpTunneling
  12. {
  13. enum TSocketType { stProxy, stSource, stTarget };
  14.  
  15. typedef void __fastcall (__closure *TNotifyLogEntry)(AnsiString);
  16.  
  17. //-----------------------------------------------------------------------
  18.  
  19. class TSocketLog : public TComponent
  20. {
  21. private:
  22. static AnsiString m_strLogFile;
  23. static int m_iInstances;
  24. static TStringList* m_slLog;
  25. static bool m_bLog;
  26. int m_iID;
  27.  
  28. TNotifyLogEntry m_OnAddLogEntry;
  29.  
  30. void __fastcall SetLog(bool bLog);
  31. protected:
  32. public:
  33. __fastcall TSocketLog(TComponent* Owner);
  34. __fastcall ~TSocketLog();
  35.  
  36. void __fastcall AddEntry(AnsiString strText);
  37. void __fastcall SaveLog();
  38.  
  39. __property AnsiString __fastcall LogFile = { read = m_strLogFile, write = m_strLogFile };
  40. __property bool __fastcall Logging = { read = m_bLog, write = SetLog };
  41. __property int __fastcall Instances = { read = m_iInstances };
  42. __property int __fastcall ID = { read = m_iID };
  43.  
  44. __property TNotifyLogEntry OnAddLogEntry = { read = m_OnAddLogEntry, write = m_OnAddLogEntry };
  45. };
  46. //-----------------------------------------------------------------------
  47. AnsiString TSocketLog::m_strLogFile = "";
  48. int TSocketLog::m_iInstances = 0;
  49. TStringList* TSocketLog::m_slLog = NULL;
  50. bool TSocketLog::m_bLog = true;
  51. //-----------------------------------------------------------------------
  52.  
  53. class TSocketPair : public TSocketLog
  54. {
  55. private:
  56. AnsiString m_strTargetHost;
  57. int m_iTargetPort;
  58. TClientSocket* m_clTargetSocket;
  59. TCustomWinSocket* m_cwSourceSocket;
  60. bool m_bSrcConnected;
  61. bool m_bTgtConnected;
  62. bool m_bBusy;
  63. bool m_bError;
  64.  
  65. TSocketNotifyEvent m_OnTargetConnected;
  66. TSocketNotifyEvent m_OnTargetRead;
  67. TSocketNotifyEvent m_OnSourceRead;
  68.  
  69. TCustomWinSocket* __fastcall GetTargetSocket();
  70.  
  71. void __fastcall SetTargetHost(AnsiString strHost);
  72. void __fastcall SetTargetPort(int iPort);
  73.  
  74. void __fastcall TargetConnected(TObject* Sender, TCustomWinSocket* Socket);
  75. void __fastcall OnReadData(TObject* Sender, TCustomWinSocket* Socket);
  76. void __fastcall OnDisconnect(TObject* Sender, TCustomWinSocket* Socket);
  77. void __fastcall SendToSource(TObject* Sender, TCustomWinSocket* Socket);
  78. void __fastcall SendToTarget(TObject* Sender, TCustomWinSocket* Socket);
  79.  
  80. void __fastcall SocketEventHandler(TObject* Sender, TCustomWinSocket* Socket, TSocketEvent SocketEvent);
  81. void __fastcall SocketErrorHandler(TObject* Sender, TCustomWinSocket* Socket, TErrorEvent ErrorEvent, int &ErrorCode);
  82. protected:
  83. __property TCustomWinSocket* __fastcall TargetSocket = { read = GetTargetSocket };
  84. __property TCustomWinSocket* __fastcall SourceSocket = { read = m_cwSourceSocket };
  85.  
  86. AnsiString __fastcall ParseHttpGetQuery(AnsiString strText, int& iPort);
  87. char* __fastcall ReadDataFromSocket(TCustomWinSocket* cwSocket, int& iLen);
  88. void __fastcall SendData(TCustomWinSocket* cwSocket, char* cBuffer, int iLen);
  89. public:
  90. __fastcall TSocketPair(TComponent* Owner, TCustomWinSocket* cwSourceSocket);
  91. __fastcall ~TSocketPair();
  92.  
  93. void __fastcall Open();
  94. void __fastcall Close();
  95.  
  96. __property AnsiString __fastcall TargetHost = { read = m_strTargetHost, write = SetTargetHost };
  97. __property int __fastcall TargetPort = { read = m_iTargetPort, write = SetTargetPort };
  98. __property bool __fastcall Busy = { read = m_bBusy };
  99. __property TSocketNotifyEvent OnTargetConnected = { read = m_OnTargetConnected, write = m_OnTargetConnected };
  100. __property TSocketNotifyEvent OnTargetRead = { read = m_OnTargetRead, write = m_OnTargetRead };
  101. __property TSocketNotifyEvent OnSourceRead = { read = m_OnSourceRead, write = m_OnSourceRead };
  102. };
  103. //-----------------------------------------------------------------------
  104.  
  105. class TSslBridge : public TSocketPair
  106. {
  107. private:
  108. char* m_cBuffer;
  109. int m_iLen;
  110.  
  111. void __fastcall SslTargetConnected(TObject* Sender, TCustomWinSocket* Socket);
  112. void __fastcall SslSourceRead(TObject* Sender, TCustomWinSocket* Socket);
  113. protected:
  114. public:
  115. __fastcall TSslBridge(TComponent* Owner, TCustomWinSocket* cwSourceSocket);
  116. __fastcall ~TSslBridge();
  117. };
  118. //-----------------------------------------------------------------------
  119.  
  120. class THttpTunnel : public TSocketPair
  121. {
  122. private:
  123. char* m_cBuffer;
  124. int m_iLen;
  125. AnsiString m_strBridgeHost;
  126. AnsiString m_strProxyHost;
  127. AnsiString m_strUser;
  128. AnsiString m_strPassword;
  129. int m_iProxyPort;
  130.  
  131. void __fastcall SetProxyHost(AnsiString strHost);
  132. void __fastcall SetProxyPort(int iPort);
  133.  
  134. AnsiString __fastcall IntToBase64(unsigned int uiNmb);
  135. AnsiString __fastcall Base64Encode(AnsiString strText);
  136.  
  137. void __fastcall TunnelTargetConnected(TObject* Sender, TCustomWinSocket* Socket);
  138. void __fastcall TunnelTargetRead(TObject* Sender, TCustomWinSocket* Socket);
  139. void __fastcall TunnelSourceRead(TObject* Sender, TCustomWinSocket* Socket);
  140. protected:
  141. public:
  142. __fastcall THttpTunnel(TComponent* Owner, TCustomWinSocket* cwSourceSocket);
  143. __fastcall ~THttpTunnel();
  144.  
  145. __property AnsiString __fastcall BridgeHost = { read = m_strBridgeHost, write = m_strBridgeHost };
  146. __property AnsiString __fastcall ProxyHost = { read = m_strProxyHost, write = SetProxyHost };
  147. __property int __fastcall ProxyPort = { read = m_iProxyPort, write = SetProxyPort };
  148. __property AnsiString __fastcall ProxyUser = { read = m_strUser, write = m_strUser };
  149. __property AnsiString __fastcall ProxyPswd = { read = m_strPassword, write = m_strPassword };
  150. };
  151. };
  152. //---------------------------------------------------------------------------
  153. #endif
  154.  
  155. Fuente 2
  156. Código:
  157.  
  158. //---------------------------------------------------------------------------
  159. #include
  160. #pragma hdrstop
  161.  
  162. #include "TunnelSockets.h"
  163. //---------------------------------------------------------------------------
  164. #pragma package(smart_init)
  165.  
  166. using namespace NsHttpTunneling;
  167.  
  168. __fastcall TSocketLog::TSocketLog(TComponent* Owner) : TComponent(Owner)
  169. {
  170. try
  171. {
  172. if(!m_iInstances)
  173. {
  174. m_strLogFile = Application->ExeName.SubString(1, Application->ExeName.Length() - ExtractFileExt(Application->ExeName).Length()) + ".log";
  175. m_slLog = new TStringList;
  176. }
  177. m_iID = ++m_iInstances;
  178. m_OnAddLogEntry = NULL;
  179. }
  180. catch(Exception& e)
  181. {
  182. MessageBox(Application->MainForm->Handle, e.Message.c_str(), "Error SocketLog", MB_OK | MB_ICONERROR | MB_APPLMODAL);
  183. }
  184. }
  185. //---------------------------------------------------------------------------
  186.  
  187. __fastcall TSocketLog::~TSocketLog()
  188. {
  189. try
  190. {
  191. --m_iInstances;
  192. if(!m_iInstances)
  193. {
  194. SaveLog();
  195. delete m_slLog;
  196. }
  197. }
  198. catch(Exception& e)
  199. {
  200. MessageBox(Application->MainForm->Handle, e.Message.c_str(), "Error SocketLog", MB_OK | MB_ICONERROR | MB_APPLMODAL);
  201. }
  202. }
  203. //---------------------------------------------------------------------------
  204.  
  205. void __fastcall TSocketLog::SetLog(bool bLog)
  206. {
  207. if(bLog != m_bLog && !bLog)
  208. SaveLog();
  209. m_bLog = bLog;
  210. }
  211. //---------------------------------------------------------------------------
  212.  
  213. void __fastcall TSocketLog::AddEntry(AnsiString strText)
  214. {
  215. if(m_bLog)
  216. {
  217. m_slLog->Add(FormatDateTime("dd-mmm-yy hh:nn:ss", Now()) + " [" + IntToStr(m_iID) + "]: " + strText);
  218. if(m_OnAddLogEntry)
  219. m_OnAddLogEntry(strText);
  220. }
  221. }
  222. //---------------------------------------------------------------------------
  223.  
  224. void __fastcall TSocketLog::SaveLog()
  225. {
  226. if(m_bLog && m_slLog->Count)
  227. m_slLog->SaveToFile(m_strLogFile);
  228. }
  229. //---------------------------------------------------------------------------
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236. __fastcall TSocketPair::TSocketPair(TComponent* Owner, TCustomWinSocket* cwSourceSocket) : TSocketLog(Owner)
  237. {
  238. try
  239. {
  240. m_strTargetHost = "";
  241. m_iTargetPort = -1;
  242. m_clTargetSocket = new TClientSocket(this);
  243. m_cwSourceSocket = cwSourceSocket;
  244. m_bBusy = false;
  245. m_bError = false;
  246. m_bSrcConnected = true;
  247. m_bTgtConnected = false;
  248. m_OnTargetConnected = NULL;
  249. m_OnTargetRead = NULL;
  250. m_OnSourceRead = NULL;
  251.  
  252. m_cwSourceSocket->OnSocketEvent = SocketEventHandler;
  253. m_cwSourceSocket->OnErrorEvent = SocketErrorHandler;
  254.  
  255. m_clTargetSocket->OnConnect = TargetConnected;
  256. m_clTargetSocket->Socket->OnSocketEvent = SocketEventHandler;
  257. m_clTargetSocket->Socket->OnErrorEvent = SocketErrorHandler;
  258. }
  259. catch(Exception& e)
  260. {
  261. AddEntry("TSocketPair constructor - " + e.Message);
  262. throw e;
  263. }
  264. }
  265. //---------------------------------------------------------------------------
  266.  
  267. __fastcall TSocketPair::~TSocketPair()
  268. {
  269. try
  270. {
  271. Close();
  272. delete m_clTargetSocket;
  273. }
  274. catch(Exception& e)
  275. {
  276. AddEntry("TSocketPair destructor - " + e.Message);
  277. throw e;
  278. }
  279. }
  280. //---------------------------------------------------------------------------
  281.  
  282. TCustomWinSocket* __fastcall TSocketPair::GetTargetSocket()
  283. {
  284. return m_clTargetSocket->Socket;
  285. }
  286. //---------------------------------------------------------------------------
  287.  
  288. void __fastcall TSocketPair::SetTargetHost(AnsiString strHost)
  289. {
  290. try
  291. {
  292. if(m_clTargetSocket->Socket->Connected)
  293. AddEntry("TSocketPair.SetTargetHost - TargetSocket already connected. Cannot change host");
  294. else
  295. m_strTargetHost = strHost;
  296. }
  297. catch(Exception& e)
  298. {
  299. AddEntry("TSocketPair.SetTargetHost - " + e.Message);
  300. throw e;
  301. }
  302. }
  303. //---------------------------------------------------------------------------
  304.  
  305. void __fastcall TSocketPair::SetTargetPort(int iPort)
  306. {
  307. try
  308. {
  309. if(iPort < 0 || iPort > 65535)
  310. throw Exception("Invalid port number " + IntToStr(iPort));
  311. else if(m_clTargetSocket->Socket->Connected)
  312. AddEntry("TSocketPair.SetTargetPort - TargetSocket already connected. Cannot change port");
  313. else
  314. m_iTargetPort = iPort;
  315. }
  316. catch(Exception& e)
  317. {
  318. AddEntry("TSocketPair.SetTargetPort - " + e.Message);
  319. throw e;
  320. }
  321. }
  322. //---------------------------------------------------------------------------
  323.  
  324. void __fastcall TSocketPair::TargetConnected(TObject* Sender, TCustomWinSocket* Socket)
  325. {
  326. try
  327. {
  328. if(Socket != m_clTargetSocket->Socket)
  329. return;
  330.  
  331. m_bTgtConnected = Socket->Connected;
  332.  
  333. if(m_OnTargetConnected)
  334. m_OnTargetConnected(Sender, Socket);
  335. }
  336. catch(Exception& e)
  337. {
  338. AddEntry("TSslBridge.TargetConnected - " + e.Message);
  339. throw e;
  340. }
  341. }
  342. //---------------------------------------------------------------------------
  343.  
  344. void __fastcall TSocketPair::OnReadData(TObject* Sender, TCustomWinSocket* Socket)
  345. {
  346. try
  347. {
  348. if(Socket == m_cwSourceSocket)
  349. {
  350. if(m_OnSourceRead)
  351. m_OnSourceRead(Sender, Socket);
  352. else
  353. SendToTarget(Sender, Socket);
  354. }
  355. else if(Socket == m_clTargetSocket->Socket)
  356. {
  357. if(m_OnTargetRead)
  358. m_OnTargetRead(Sender, Socket);
  359. else
  360. SendToSource(Sender, Socket);
  361. }
  362. }
  363. catch(Exception& e)
  364. {
  365. AddEntry("TSocketPair.OnReadData - " + e.Message);
  366. throw e;
  367. }
  368. }
  369. //---------------------------------------------------------------------------
  370.  
  371. void __fastcall TSocketPair::OnDisconnect(TObject* Sender, TCustomWinSocket* Socket)
  372. {
  373. try
  374. {
  375. if(Socket == m_cwSourceSocket && m_bTgtConnected)
  376. {
  377. AddEntry("Desconectado del socket destino");
  378. m_bTgtConnected = false;
  379. m_clTargetSocket->Close();
  380. }
  381. else if(Socket == m_clTargetSocket->Socket && m_bSrcConnected)
  382. {
  383. AddEntry("Desconectado del socket origen");
  384. m_bSrcConnected = false;
  385. m_cwSourceSocket->Close();
  386. }
  387. }
  388. catch(Exception& e)
  389. {
  390. AddEntry("TSocketPair.OnDisconnect - " + e.Message);
  391. throw e;
  392. }
  393. }
  394. //---------------------------------------------------------------------------
  395.  
  396. void __fastcall TSocketPair::SendToSource(TObject* Sender, TCustomWinSocket* Socket)
  397. {
  398. int i_len;
  399. char* c_buf = NULL;
  400. try
  401. {
  402. try
  403. {
  404. c_buf = ReadDataFromSocket(Socket, i_len);
  405. SendData(m_cwSourceSocket, c_buf, i_len);
  406. }
  407. catch(Exception& e)
  408. {
  409. AddEntry("TSocketPair.SendToTarget - " + e.Message);
  410. throw e;
  411. }
  412. }
  413. __finally
  414. {
  415. if(c_buf)
  416. delete[] c_buf;
  417. }
  418. }
  419. //---------------------------------------------------------------------------
  420.  
  421. void __fastcall TSocketPair::SendToTarget(TObject* Sender, TCustomWinSocket* Socket)
  422. {
  423. int i_len;
  424. char* c_buf = NULL;
  425. try
  426. {
  427. try
  428. {
  429. c_buf = ReadDataFromSocket(Socket, i_len);
  430. SendData(m_clTargetSocket->Socket, c_buf, i_len);
  431. }
  432. catch(Exception& e)
  433. {
  434. AddEntry("TSocketPair.SendToTarget - " + e.Message);
  435. throw e;
  436. }
  437. }
  438. __finally
  439. {
  440. if(c_buf)
  441. delete[] c_buf;
  442. }
  443. }
  444. //---------------------------------------------------------------------------
  445.  
  446. void __fastcall TSocketPair::SocketEventHandler(TObject* Sender, TCustomWinSocket* Socket, TSocketEvent SocketEvent)
  447. {
  448. try
  449. {
  450. switch(SocketEvent)
  451. {
  452. case seLookup:
  453. case seConnecting:
  454. case seListen:
  455. case seAccept:
  456. case seWrite:
  457. break;
  458. case seConnect:
  459. TargetConnected(Sender, Socket);
  460. break;
  461. case seDisconnect:
  462. OnDisconnect(Sender, Socket);
  463. break;
  464. case seRead:
  465. OnReadData(Sender, Socket);
  466. break;
  467. }
  468. }
  469. catch(Exception& e)
  470. {
  471. AddEntry("TSocketPair.SocketEventHandler - " + e.Message);
  472. throw e;
  473. }
  474. }
  475. //---------------------------------------------------------------------------
  476.  
  477. void __fastcall TSocketPair::SocketErrorHandler(TObject* Sender, TCustomWinSocket* Socket, TErrorEvent ErrorEvent, int &ErrorCode)
  478. {
  479. try
  480. {
  481. AddEntry(SysErrorMessage(ErrorCode));
  482. ErrorCode = 0;
  483. m_bError = true;
  484. Socket->Close();
  485. }
  486. catch(Exception& e)
  487. {
  488. AddEntry("TSocketPair.SocketErrorHandler - " + e.Message);
  489. }
  490. }
  491. //---------------------------------------------------------------------------
  492.  
  493. void __fastcall TSocketPair::SendData(TCustomWinSocket* cwSocket, char* cBuffer, int iLen)
  494. {
  495. try
  496. {
  497. #ifdef _DEBUG
  498. AnsiString str_add_entry = "";
  499. if(cwSocket == m_cwSourceSocket)
  500. str_add_entry = "TSocketPair.SendData - Target -> Source";
  501. else if(cwSocket == m_clTargetSocket->Socket)
  502. str_add_entry = "TSocketPair.SendData - Source -> Target";
  503. AddEntry(str_add_entry + " (" + IntToStr(iLen) + " bytes to send)");
  504. #endif
  505.  
  506. m_bBusy = true;
  507.  
  508. int i_retries = 0;
  509. int i_sent = cwSocket->SendBuf(cBuffer, iLen);
  510. #ifdef _DEBUG
  511. AddEntry(IntToStr(i_sent) + "/" + IntToStr(iLen) + " sent");
  512. #endif
  513. while(i_sent < iLen && i_retries < TNLSCK_RETRIES && !m_bError)
  514. {
  515. Sleep(TNLSCK_WAIT_TIME); // Espera TNLSCK_WAIT_TIME milisegundos antes de reintentarlo
  516. if(i_sent < 0) i_sent = 0;
  517. i_sent += cwSocket->SendBuf((cBuffer + i_sent), iLen - i_sent);
  518. ++i_retries;
  519. #ifdef _DEBUG
  520. AddEntry(IntToStr(i_sent) + "/" + IntToStr(iLen) + " sent");
  521. #endif
  522. }
  523.  
  524. m_bBusy = false;
  525.  
  526. if(m_bError)
  527. cwSocket->Close();
  528.  
  529. if(i_retries >= TNLSCK_RETRIES && i_sent < iLen)
  530. throw Exception("Could not send all data. " + IntToStr(i_sent * 100 / iLen) + "% completed");
  531. }
  532. catch(Exception& e)
  533. {
  534. AddEntry("TSocketPair.SendData - " + e.Message);
  535. throw e;
  536. }
  537. }
  538. //---------------------------------------------------------------------------
  539.  
  540. AnsiString __fastcall TSocketPair::ParseHttpGetQuery(AnsiString strText, int& iPort)
  541. {
  542. AnsiString str_host = "";
  543.  
  544. if(!strText.Pos("GET") && !strText.Pos("CONECT"))
  545. return AnsiString("");
  546.  
  547. try
  548. {
  549. int i_pos = strText.Pos("Host:");
  550.  
  551. str_host = strText.SubString(i_pos + 5, strText.Length()).Trim();
  552. if(str_host.Pos("r"))
  553. str_host = str_host.SubString(1, str_host.Pos("r") - 1).Trim();
  554. if(str_host.Pos("n"))
  555. str_host = str_host.SubString(1, str_host.Pos("n") - 1).Trim();
  556. if(str_host.Pos(":"))
  557. {
  558. iPort = StrToIntDef(str_host.SubString(str_host.Pos(":") + 1, str_host.Length()).Trim(), 80);
  559. str_host = str_host.SubString(1, str_host.Pos(":") - 1).Trim();
  560. }
  561.  
  562. if(iPort < 0 || iPort > 65535)
  563. AddEntry("TSslBridge.TargetConnect - Intento de conexión a puerto no válido " + IntToStr(iPort));
  564. else if(str_host.IsEmpty())
  565. AddEntry("TSslBridge.TargetConnect - Host no especificado para la conexión");
  566. }
  567. catch(Exception& e)
  568. {
  569. AddEntry("TSslBridge.TargetConnect - " + e.Message);
  570. throw e;
  571. }
  572. return str_host;
  573. }
  574. //---------------------------------------------------------------------------
  575.  
  576. char* __fastcall TSocketPair::ReadDataFromSocket(TCustomWinSocket* cwSocket, int& iLen)
  577. {
  578. char* c_buf = NULL;
  579. try
  580. {
  581. try
  582. {
  583. iLen = 3 * cwSocket->ReceiveLength() / 2;
  584. c_buf = new char[iLen];
  585. iLen = cwSocket->ReceiveBuf((void*)c_buf, iLen);
  586. }
  587. catch(Exception& e)
  588. {
  589. AddEntry("TSocketPair.ReadDataFromSocket - " + e.Message);
  590. throw e;
  591. }
  592. }
  593. __finally
  594. {
  595. return c_buf;
  596. }
  597. }
  598. //---------------------------------------------------------------------------
  599.  
  600. void __fastcall TSocketPair::Open()
  601. {
  602. try
  603. {
  604. if(!m_clTargetSocket->Socket->Connected)
  605. {
  606. m_clTargetSocket->Host = m_strTargetHost;
  607. m_clTargetSocket->Port = m_iTargetPort;
  608. m_clTargetSocket->Open();
  609. }
  610. }
  611. catch(Exception& e)
  612. {
  613. AddEntry("TSocketPair.Open - " + e.Message);
  614. throw e;
  615. }
  616. }
  617. //---------------------------------------------------------------------------
  618.  
  619. void __fastcall TSocketPair::Close()
  620. {
  621. try
  622. {
  623. if(m_clTargetSocket->Socket->Connected)
  624. m_clTargetSocket->Close();
  625. if(m_cwSourceSocket->Connected)
  626. m_cwSourceSocket->Close();
  627. }
  628. catch(Exception& e)
  629. {
  630. AddEntry("TSocketPair.Close - " + e.Message);
  631. throw e;
  632. }
  633. }
  634. //---------------------------------------------------------------------------
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641. __fastcall TSslBridge::TSslBridge(TComponent* Owner, TCustomWinSocket* cwSourceSocket) : TSocketPair(Owner, cwSourceSocket)
  642. {
  643. m_cBuffer = NULL;
  644. m_iLen = 0;
  645. OnTargetConnected = SslTargetConnected;
  646. OnSourceRead = SslSourceRead;
  647. }
  648. //---------------------------------------------------------------------------
  649.  
  650. __fastcall TSslBridge::~TSslBridge()
  651. {
  652. if(m_cBuffer)
  653. delete[] m_cBuffer;
  654. }
  655. //---------------------------------------------------------------------------
  656.  
  657. void __fastcall TSslBridge::SslTargetConnected(TObject* Sender, TCustomWinSocket* Socket)
  658. {
  659. try
  660. {
  661. try
  662. {
  663. //-- Send the target the request from the source
  664. SendData(Socket, m_cBuffer, m_iLen);
  665. }
  666. catch(Exception& e)
  667. {
  668. AddEntry("TSslBridge.SslTargetConnected - " + e.Message);
  669. throw e;
  670. }
  671. }
  672. __finally
  673. {
  674. if(m_cBuffer)
  675. delete[] m_cBuffer;
  676. m_cBuffer = NULL;
  677. m_iLen = 0;
  678. }
  679. }
  680. //---------------------------------------------------------------------------
  681.  
  682. void __fastcall TSslBridge::SslSourceRead(TObject* Sender, TCustomWinSocket* Socket)
  683. {
  684. try
  685. {
  686. int i_len;
  687. char* c_data = ReadDataFromSocket(Socket, i_len);
  688. AnsiString str_data = AnsiString(c_data);
  689. AnsiString str_host;
  690. int i_port = 80;
  691.  
  692. str_host = ParseHttpGetQuery(str_data, i_port);
  693. if(!str_host.IsEmpty())
  694. {
  695. #ifdef _DEBUG
  696. AddEntry("TSslBridge.SslSourceRead - Requesting: " + str_host + ":" +IntToStr(i_port));
  697. #endif
  698. TargetHost = str_host;
  699. TargetPort = i_port;
  700. m_cBuffer = c_data;
  701. m_iLen = i_len;
  702. OnSourceRead = NULL; // From now on we act as a bridge
  703.  
  704. Open(); // Finally, Open the target connexion
  705. }
  706. }
  707. catch(Exception& e)
  708. {
  709. AddEntry("TSslBridge.SslSourceRead - " + e.Message);
  710. throw e;
  711. }
  712. }
  713. //---------------------------------------------------------------------------
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721. __fastcall THttpTunnel::THttpTunnel(TComponent* Owner, TCustomWinSocket* cwSourceSocket) : TSocketPair(Owner, cwSourceSocket)
  722. {
  723. m_cBuffer = NULL;
  724. m_iLen = 0;
  725. m_strProxyHost = "";
  726. m_iProxyPort = 8080;
  727. OnTargetConnected = TunnelTargetConnected;
  728. OnTargetRead = TunnelTargetRead;
  729. OnSourceRead = TunnelSourceRead;
  730. }
  731. //---------------------------------------------------------------------------
  732.  
  733. __fastcall THttpTunnel::~THttpTunnel()
  734. {
  735. }
  736. //---------------------------------------------------------------------------
  737.  
  738. void __fastcall THttpTunnel::SetProxyHost(AnsiString strHost)
  739. {
  740. try
  741. {
  742. if(!TargetSocket->Connected)
  743. m_strProxyHost = strHost;
  744. }
  745. catch(Exception& e)
  746. {
  747. AddEntry("THttpTunnel.SetProxyHost - " + e.Message);
  748. throw e;
  749. }
  750. }
  751. //---------------------------------------------------------------------------
  752.  
  753. void __fastcall THttpTunnel::SetProxyPort(int iPort)
  754. {
  755. try
  756. {
  757. if(iPort < 0 || iPort > 65535)
  758. throw Exception("Puerto no válido: " + IntToStr(iPort));
  759. else if(!TargetSocket->Connected)
  760. m_iProxyPort = iPort;
  761. }
  762. catch(Exception& e)
  763. {
  764. AddEntry("THttpTunnel.SetProxyPort - " + e.Message);
  765. throw e;
  766. }
  767. }
  768. //---------------------------------------------------------------------------
  769.  
  770. AnsiString __fastcall THttpTunnel::IntToBase64(unsigned int uiNmb)
  771. {
  772. AnsiString str_rtn = "";
  773. try
  774. {
  775. try
  776. {
  777. if(uiNmb < 26)
  778. str_rtn = String(char(uiNmb + 'A'));
  779. else if(uiNmb < 52)
  780. str_rtn = String(char(uiNmb - 26 + 'a'));
  781. else if(uiNmb < 62)
  782. str_rtn = String(char(uiNmb - 52 + '0'));
  783. else if(uiNmb == 62)
  784. str_rtn = "+";
  785. else if(uiNmb == 63)
  786. str_rtn = "/";
  787. }
  788. catch(Exception& e)
  789. {
  790. AddEntry("THttpTunnel.IntToBase64 - " + e.Message);
  791. throw e;
  792. }
  793. }
  794. __finally
  795. {
  796. return str_rtn;
  797. }
  798. }
  799. //---------------------------------------------------------------------------
  800.  
  801. AnsiString __fastcall THttpTunnel::Base64Encode(AnsiString strText)
  802. {
  803. AnsiString str_rtn = "";
  804. try
  805. {
  806. try
  807. {
  808. unsigned int ui_len = strText.Length() / 3;
  809. unsigned int ui_mod = strText.Length() % 3;
  810. unsigned int ui_int_len = ui_len + (ui_mod ? 1 : 0);
  811. bool b_padding;
  812. char* c_text = new char[3 * ui_int_len + 1];
  813. unsigned int ui_6bit[4];
  814.  
  815. ZeroMemory(c_text, 3 * ui_int_len + 1);
  816. strcpy(c_text, strText.c_str());
  817.  
  818. for(unsigned int i = 0; i < ui_int_len; ++i)
  819. {
  820. ui_6bit[0] = (unsigned int)((c_text[3 * i] >> 2) & 0x0000003F);
  821. ui_6bit[1] = (unsigned int)(((c_text[3 * i] << 4) & 0x00000030) | ((c_text[3 * i + 1] >> 4) & 0x0000000F));
  822. ui_6bit[2] = (unsigned int)(((c_text[3 * i + 1] << 2) & 0x0000003C) | ((c_text[3 * i + 2] >> 6) & 0x00000003));
  823. ui_6bit[3] = (unsigned int)(c_text[3 * i + 2] & 0x0000003F);
  824.  
  825. if(i >= ui_len) // padding
  826. {
  827. str_rtn += IntToBase64(ui_6bit[0]);
  828. str_rtn += IntToBase64(ui_6bit[1]);
  829. if(!ui_mod)
  830. str_rtn += IntToBase64(ui_6bit[2]) + IntToBase64(ui_6bit[3]);
  831. else if(ui_mod == 1)
  832. str_rtn += "==";
  833. else if(ui_mod == 2)
  834. str_rtn += IntToBase64(ui_6bit[2]) + "=";
  835. }
  836. else
  837. {
  838. str_rtn += IntToBase64(ui_6bit[0]);
  839. str_rtn += IntToBase64(ui_6bit[1]);
  840. str_rtn += IntToBase64(ui_6bit[2]);
  841. str_rtn += IntToBase64(ui_6bit[3]);
  842. }
  843. }
  844.  
  845. delete[] c_text;
  846. }
  847. catch(Exception& e)
  848. {
  849. AddEntry("THttpTunnel.Base64Encode - " + e.Message);
  850. throw e;
  851. }
  852. }
  853. __finally
  854. {
  855. return str_rtn;
  856. }
  857. }
  858. //---------------------------------------------------------------------------
  859.  
  860. void __fastcall THttpTunnel::TunnelTargetConnected(TObject* Sender, TCustomWinSocket* Socket)
  861. {
  862. try
  863. {
  864. AnsiString str_auth = Base64Encode(m_strUser + ":" + m_strPassword);
  865. AnsiString str_data = "CONNECT " + m_strBridgeHost + ":443 HTTP/1.0n"
  866. + "Host: " + m_strBridgeHost + "n"
  867. + "Proxy-Authorization: Basic " + str_auth + "nn";
  868. //-- Pedimos conexión segura al proxy con el ordenador que está corriendo el
  869. // programa pasarela.
  870. SendData(Socket, str_data.c_str(), str_data.Length());
  871. }
  872. catch(Exception& e)
  873. {
  874. AddEntry("THttpTunnel.TunnelSourceRead - " + e.Message);
  875. throw e;
  876. }
  877. }
  878. //---------------------------------------------------------------------------
  879.  
  880. void __fastcall THttpTunnel::TunnelTargetRead(TObject* Sender, TCustomWinSocket* Socket)
  881. {
  882. int i_len;
  883. char* c_data;
  884. AnsiString str_data;
  885. try
  886. {
  887. try
  888. {
  889. c_data = ReadDataFromSocket(Socket, i_len);
  890. str_data = AnsiString(c_data);
  891.  
  892. OnTargetRead = NULL;
  893. if(str_data.Pos("HTTP/1.1 200 "))
  894. SendData(Socket, m_cBuffer, m_iLen);
  895. else
  896. AddEntry("THttpTunnel.TunnelTargetRead - Connexion not established");
  897. }
  898. catch(Exception& e)
  899. {
  900. AddEntry("THttpTunnel.TunnelTargetRead - " + e.Message);
  901. throw e;
  902. }
  903. }
  904. __finally
  905. {
  906. if(c_data)
  907. delete[] c_data;
  908. if(m_cBuffer)
  909. delete[] m_cBuffer;
  910. m_cBuffer = NULL;
  911. m_iLen = 0;
  912. }
  913. }
  914. //---------------------------------------------------------------------------
  915.  
  916. void __fastcall THttpTunnel::TunnelSourceRead(TObject* Sender, TCustomWinSocket* Socket)
  917. {
  918. try
  919. {
  920. m_cBuffer = ReadDataFromSocket(Socket, m_iLen);
  921. TargetHost = m_strProxyHost;
  922. TargetPort = m_iProxyPort;
  923. OnSourceRead = NULL; // From now on we act as a bridge
  924.  
  925. Open(); // Finally, Open the target connexion
  926. }
  927. catch(Exception& e)
  928. {
  929. AddEntry("THttpTunnel.TunnelSourceRead - " + e.Message);
  930. throw e;
  931. }
  932. }
  933. //---------------------------------------------------------------------------
  934.  
  935.  
  936.  
  937.  

645
Dudas informáticas / Re: Ayuda Urgente...
« en: Miércoles 7 de Marzo de 2007, 21:36 »
:P  :P  :P  :P


Que cosas se leen en el foro, dice que no puede leer correos y quiere que la solucion se la envien al correo , mmm yo creo que si en tu trabajo cierran ciertos puertos es por algo y no porque si, de todas formas siempre podras utilizar otros puertos os recomiendo el 443, o hacer una triangulacion como le hacen con el msn en el meebo para los que tienen prohibido usar msn y esas cosas, en fin no se me hace correcto que violes las reglas de tu trabajo.


-Ademàs se me figura un firewall de software porque un firewall fisico, mmmm no creo que os pueda saltar el httptunnel.
 
- No creo que cambiando el nombre del archivo os puedas descargar, mas bien creo que esta prohibido descargar cualquier archivo adjunto, llamese como se llame.

- alo que te referis de ssh no estaras queriendo decir SSL

646
MySQL / Relacionales!
« en: Miércoles 7 de Marzo de 2007, 17:17 »
:P  :P  :P


Hola amigos del foro ando buscando info sobre bases de datos relacionales, sobre todo porque ando trabajando con el mysql y php tambien sobre llaves primarias y foraneas , si tienen algun buen link os agradecere. en lo mientras seguire buscando por la red.
Por su atencion Gracias.

647
Windows / Re: Windows Vista
« en: Miércoles 7 de Marzo de 2007, 16:33 »
:D  :D  :D

De hecho creo que todas la pc's de marca no tienen problema alguno, los problemas si mas no recuerdo se presentan con maquina armadas y dispositivos genericos que como vos decir no estan a tiempo de crear los drivers adecuados para sus dispositivos.

648
PHP / Re: Imprimir Reporte !!!
« en: Miércoles 7 de Marzo de 2007, 16:27 »
Cita de: "ArKaNtOs"
lo mejor es que hagas uso de las funciones para trabajo con pdf o utilices el agata reports
http://www.webtaller.com/construccion/leng..._usando_php.php
 :P  :P  :P  :P  :P  :P


He buscado sobre el agata reports y parece ser una herramienta muy parecida a crystal , por otro lado solo he encontrado orientado a linuxeros seguire buscando una opcion de agata para Win .


F_tanori gracias por tu ayuda voy a probar lo que me diste.

649
Windows / Re: Windows Vista
« en: Miércoles 7 de Marzo de 2007, 16:17 »
:lol:  :lol:  :lol:  :lol:  :lol:  :lol:



mmmm si màs no recuerdo los mismo problemas de xp, algunos drivers no jalan no reconoce dispositivos y cosas de esas pasaban cuando recien inicio Xp a final de cuentas todos nos tuvimos que adaptar ala buena o ala mala y yo creo pasaralo mismo con Vista.

650
La taberna del BIT / Re: Y Por Eso Nada Mas Se Matan?
« en: Miércoles 7 de Marzo de 2007, 04:10 »
:D  :D  :D  :D  :D  :D  :D


La culpa no la tiene la cruz ni las religiones, la culpa siempre ha sido la avaricia, la codicia la sed de poder que ha tenido el hombre a travez de la historia, la culpa es de todos aquellos seres racionales llamados hombres que solo han usado su raciocinio para la destrucciòn, la religiòn la cruz y todo lo que quieran es simplemente un pretexto para llevar a cabo las mas grandes atrosidades.

Páginas: 1 ... 24 25 [26] 27 28 ... 63