binärdaten mit sockets übertragen



  • hallo ihr,

    ich habe folgendes problem:
    ich möchte von einem (c#) server aus binärdaten (eine embedded vc++ .EXE) mittels sockets zu einem windows ce4.2 rechner (auf dem ein embedded vc++ client läuft) schicken.

    ich lese die .exe mit einem BinaryReader byteweise aus und übertrage jedes byte für sich mit (in etwa) diesem code:

    private void SendData()
    		{
    			byte[] byteSendData = Encoding.ASCII.GetBytes(this.txtSend.Text);
    
    			if(this.thrSendThread != null) // sende thread gestartet?
    			{
    				try
    				{
    					if(this.bSendFromFile == true) // senden aus binärdatei
    					{
    							this.myTCPClient.GetStream().WriteByte(this.byteUpdateByte);
    					}
    					else // senden aus textbox
    					{
    							this.myTCPClient.GetStream().Write(byteSendData, 0, byteSendData.Length);
    					}
    				}
    				catch(Exception ex)
    				{
    					MessageBox.Show("An exception occured:\n" + ex.Message, "Warning");
    				}
    			}
    		}
    

    wenn ich mir den netzwerkstrom mit ethereal anschaue fällt mir auf, dass anscheinend jedesmal wenn in der binärdatei in nullbyte, also 0x00h vorkommt die checksummen des zu sendenden pakets nicht korrekt zu sein scheinen.

    auch kann der windows ce rechner mit den nullbyte paketen scheinbar recht wenig anfangen 😞

    hab ich hier irgendwo einen gravierenden denkfehler drin oder funktioniert das binärdatenübertragen so garnicht?

    danke schon jetzt für euere hilfe und einen guten rutsch ins nächste jahr.

    root2



  • hm, sieht eigentlich richtig aus.

    Nimm besser WebService.

    oder auch WSE : http://msdn.microsoft.com/webservices/building/wse/default.aspx

    da kannste auch Binärdaten anhängen.


Log in to reply