FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
enviar string cliente-servidor
Hola a todos!!
Estoy desarrollando un programa estilo cliente servidor que se conecta mediando tcp/ip y envia strings desde el cliente al servidor, y este ultimo lo guarda en un archivo. La conexion ya la implemente y funciona bien, pero en un comienzo, para probar los datos que recibia el servidor, cree en el cliente 3 text-edit, los cuales tambien estaban en el servidor y recibian un string en el text-edit1, un numero entero y un numero flotante en los 2 text-edit siguientes. El problema se origina cuando quiero enviar 3 string, ya que los sigue reconociendo como 1 string, 1 int y 1 float. He revisado bastantes veces el programa, tanto cliente como servidor, pero no puedo encontrar el error. Envio el codigo del cliente y del servidor, los cuales son pequeños. Espero me puedan ayudar Muchas Gracias Saludos.. Código:
CLIENTE----> //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; struct DATOS_COM // crea una estructura llamada dato_personales { // que esta conformada por: char razon_social[20]; // un puntero a char (permite iniciar cadenas) char giro[20]; char rut[20]; char fono[20]; char direccion[20]; char ciudad[20]; char comuna[20]; char factura_n[20]; char cantidad[20]; char detalle[20]; char precio_unitario[20]; char precio_venta[20]; //int edad; // un entero //float altura; // un numero de punto flotante }; typedef struct DATOS_COM DATOS_COM; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { ClientSocket1->Host = String( Edit1->Text ); ClientSocket1->Port = StrToInt( Edit2->Text ); ClientSocket1->Active = true; } //--------------------------------------------------------------------------- void __fastcall TForm1::ClientSocket1Connect(TObject *Sender, TCustomWinSocket *Socket) { Label1->Caption = "Conectado"; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { String buffer; DATOS_COM datos_enviados; buffer = Edit3->Text; strcpy(datos_enviados.razon_social,buffer.c_str()); buffer = Edit4->Text; strcpy(datos_enviados.giro,buffer.c_str()); buffer = Edit5->Text; strcpy(datos_enviados.rut,buffer.c_str()); Form1->ClientSocket1->Socket->SendBuf(&datos_enviados); Código:
SERVIDOR -------> //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "ServForm.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; int cont=0; struct DATOS_COM // crea una estructura llamada dato_personales { // que esta conformada por: char razon_social[20]; // un puntero a char (permite iniciar cadenas) char giro[20]; char rut[20]; char fono[20]; char direccion[20]; char ciudad[20]; char comuna[20]; char factura_n[20]; char cantidad[20]; char detalle[20]; char precio_unitario[20]; char precio_venta[20]; //int edad; // un entero //float altura; // un numero de punto flotante }; typedef struct DATOS_COM DATOS_COM; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { if (Button1->Tag == 0) { Form1->ServerSocket1->Port = StrToInt( Label2->Caption ); Form1->ServerSocket1->Active = true; Button1->Caption = "Desconectar"; Button1->Tag = 1; } else { Form1->ServerSocket1->Active = false; Label1->Caption = "Host"; Button1->Caption = "Conectar"; Button1->Tag = 0; } } //--------------------------------------------------------------------------- void __fastcall TForm1::ServerSocket1Listen(TObject *Sender, TCustomWinSocket *Socket) { Label1->Caption = Socket->LocalHost; } //---------------------------------------------------------------------------- void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender, TCustomWinSocket *Socket) { DATOS_COM *datos_recibidos; datos_recibidos = (DATOS_COM *)malloc(28); Socket->ReceiveBuf(datos_recibidos,28); Edit1->Text = String(datos_recibidos->razon_social); Edit2->Text = String(datos_recibidos->giro); Edit3->Text = String(datos_recibidos->rut); Socket->SendText("Recibido!"); ---------------------------------------------------------------------- Última edición por dec fecha: 25-11-2006 a las 09:57:13. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Enviar cadena de caracteres de cliente a servidor (Sockets) | david duarte | Providers | 5 | 20-08-2007 20:28:56 |
Enviar mails a mas de un cliente | zugazua2001 | Varios | 3 | 08-08-2006 00:58:06 |
BD en Cliente-servidor | Phacko | Conexión con bases de datos | 0 | 18-08-2004 00:03:41 |
Cliente - Servidor | Sotrono | Internet | 5 | 16-04-2004 05:50:35 |
cliente servidor | Humberto Pertuz | Conexión con bases de datos | 3 | 23-11-2003 17:34:49 |
|