[Mono-list] Can someone analyze this code and tell me what happens
Alex
xtzgzorex at gmail.com
Tue Apr 5 15:28:28 EDT 2011
Hi,
You could help us help you by telling us what exception you're
getting. A self-contained test case also helps (the more you can
reduce the amount of code, the better).
Regards,
Alex
2011/4/4 Leonel Florin Selles <leonel06013 at cfg.jovenclub.cu>:
> I have created two applications that connect on the same machine and sent
> an object, I used Socket to connect, but when the client sends data to the
> server, and the server revived the data and try to Deserialize is when it
> get me out with one exception.
>
> here is the client and server, the object that they use to communicate and
> the class to serialize and deserialize
>
> dataStruct
> -----------------------------------------
> using System;
>
> namespace server
> {
> public class dataStruct
> {
> public dataStruct ()
> {
> }
>
> public String clientName;
> public Int32 clientPid;
> public String host;
> public String bd;
> public String user;
> public String pass;
> public String usersCheck;
> public Boolean systemTryIcon;
> public String adminpass;
>
> public enum signals
> {
> ConfFileExist,
> ConfFileEmpty,
> SocketServerNoStart,
> ClientMalCerrado,
> ClientBienCerrado,
> TmServiceExist,
> TmServiseNoExist,
> CerrarSesion,
> SendMeConfData,
> SaveThisConfData,
> ApagerEquipo,
> ReiniciarEquipo,
> ObjetoBdNoInicia,
> BindToSocketBrouk,
> ConectarBdImposible,
> SocketNoListen,
> ConsultaFallo,
> ConsultaOK,
> ExtractConsultaFallo,
> ExtractConsultaOk,
> PCNoExiste
> }
>
> public signals orden;
>
> }
> }
>
> ------------------------------------------------------
>
> Serialice
> -----------------------------------------------------
> using System;
> using System.Runtime.Serialization.Formatters.Binary;
> using System.IO;
>
> namespace server
> {
> public class serializacion
> {
> public serializacion ()
> {
> }
> public static byte[] Serialize (Object objeto)
> {
> BinaryFormatter formater = new BinaryFormatter ();
> MemoryStream mem = new MemoryStream ();
> formater.Serialize (mem, objeto);
> return mem.GetBuffer ();
> }
> public static System.Object DeSerialize (byte[] listaByte)
> {
> BinaryFormatter formater = new BinaryFormatter ();
> MemoryStream mem = new MemoryStream ();
>
> mem.Write (listaByte, 0, listaByte.Length);
> mem.Seek (0, 0);
> return formater.Deserialize (mem);
> }
> }
> }
> ----------------------------------------------------------------
>
>
> client
> ------------------------------------
> using System;
> using System.Text;
> using System.IO;
> using System.Net.Sockets;
>
> namespace cliente
> {
> class MainClass
> {
> public static void Main (string[] args)
> {
> byte[] sendData;
> byte[] recvData;
>
> Socket clientSocket = new Socket (AddressFamily.InterNetwork,
> SocketType.Stream, ProtocolType.IP);
> clientSocket.Connect ("localhost", 4069);
>
> dataStruct structura = new dataStruct ();
>
> structura.clientName = "Pepe";
> structura.clientPid = 1234;
> structura.host = "localhost";
> structura.bd = "Tmaquina";
> structura.user = "TmaquinaLoco";
> structura.pass = "EstoNoCuadra";
> structura.usersCheck = "estudiante,florin";
> structura.systemTryIcon = true;
> structura.adminpass = "pepeloco";
> structura.orden = dataStruct.signals.ApagerEquipo;
>
> sendData = serializacion.Serialize (structura);
>
> clientSocket.Send (sendData, 0, sendData.Length, SocketFlags.None);
>
>
> }
> }
> }
> --------------------------------------------------
>
>
>
> Server
> ---------------------------------------------
> using System;
> using System.Runtime.InteropServices;
> using System.Net;
> using System.Net.Sockets;
> using System.Collections;
> using System.Text;
>
> namespace server
> {
> class MainClass
> {
> public static void Main (string[] args)
> {
> byte[] sendData;
> byte[] rcvData;
> int puerto = 4069;
>
> Socket socketServer = new Socket (AddressFamily.InterNetwork,
> SocketType.Stream, ProtocolType.IP);
> Socket socketClient;
>
> socketServer.Bind (new IPEndPoint (IPAddress.Any, puerto));
> socketServer.Listen (100);
>
> socketClient = socketServer.Accept ();
> rcvData = new byte[4000];
> socketClient.Receive (rcvData, 0, rcvData.Length, SocketFlags.None);
>
> dataStruct datos = new dataStruct ();
>
> datos = (dataStruct)serializacion.DeSerialize (rcvData);
>
> Console.Read ();
>
> }
> }
> }
> ----------------------------------------------------------------
>
> helpppppppppppppppppppp
>
> _______________________________________________
> Mono-list maillist - Mono-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-list
>
More information about the Mono-list
mailing list