Hola amigos, tengo un servidor y una conexión entre el cliente y el servidor, en el cuál el cliente puede enviar capturas de pantalla al servidor.
El problema es que aveces las imágenes llegan completa, otras veces llegan a mitad, y desde que llega a mitad, cuando vuelvo a tratar de enviar otra imágen aveces los bytes ni llegan bien.
Aquí les dejo el código del cliente y el servidor, a ver si me ayudan por favor he estado muchas horas rompiendome la cabeza a ver que pasa, he llegado a pensar que no capturo los bytes suficiente, pero como ven convierto la cadena a string y luego la convierto a byte con la longitud de bytes que debe tener la imagen, tampoco explicaría el por qué aveces las imagenes llegan bien, bueno aqui el código del cliente:
SERVIDOR:
Como he dicho antes, aveces la imagen llega excelente, pero otras veces no, quisiera que me ayuden aunque no tengan la solución pero me den una pista por lo menos, esto me tiene con mucho estrés.
Saludos y gracias de ante mano.
PD: El cliente se logra conectar al servidor, pero me ahorré el código porque estaba en otra clase y me daba palo copiar, pero nah que ver, la conexión se realiza bien, el problema está en el envio de la imagen.
EDITADO POR FALTAS ORTOGRÁFICAS N_N
El problema es que aveces las imágenes llegan completa, otras veces llegan a mitad, y desde que llega a mitad, cuando vuelvo a tratar de enviar otra imágen aveces los bytes ni llegan bien.
Aquí les dejo el código del cliente y el servidor, a ver si me ayudan por favor he estado muchas horas rompiendome la cabeza a ver que pasa, he llegado a pensar que no capturo los bytes suficiente, pero como ven convierto la cadena a string y luego la convierto a byte con la longitud de bytes que debe tener la imagen, tampoco explicaría el por qué aveces las imagenes llegan bien, bueno aqui el código del cliente:
Código (csharp) [Seleccionar]
//Capturo la imagen de la pantalla
Bitmap bmCaptura = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
Graphics captura = Graphics.FromImage(bmCaptura);
captura.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size);
MemoryStream stream = new MemoryStream();
bmCaptura.Save(stream, ImageFormat.Jpeg);
byte[] byteArray = stream.ToArray();
//Envio los bytes al servidor.
NetworkStream net = conectarme.send_server;
net.Write(byteArray, 0, byteArray.Length);
net.Flush();
SERVIDOR:
Código (csharp) [Seleccionar]
//Recibo la imagen del cliente y la guardo en un archivo.
TcpListener server = new TcpListener(IPAddress.Any, puerto);
TcpClient client = server.AcceptTcpClient();
NetworkStream stream = client.GetStream();
byte[] clientData = new byte[90000000];
int i = stream.Read(clientData, 0, clientData.Length);
string res = Encoding.Default.GetString(clientData, 0, i);
byte[] img = Encoding.Default.GetBytes(res);
File.WriteAllBytes("dataFile.jpg", img);
Como he dicho antes, aveces la imagen llega excelente, pero otras veces no, quisiera que me ayuden aunque no tengan la solución pero me den una pista por lo menos, esto me tiene con mucho estrés.
Saludos y gracias de ante mano.
PD: El cliente se logra conectar al servidor, pero me ahorré el código porque estaba en otra clase y me daba palo copiar, pero nah que ver, la conexión se realiza bien, el problema está en el envio de la imagen.
EDITADO POR FALTAS ORTOGRÁFICAS N_N