代码之家  ›  专栏  ›  技术社区  ›  Mohammad

检查传入数据

c#
  •  0
  • Mohammad  · 技术社区  · 14 年前

    我正在开发一个加密的聊天程序,它可以在局域网中工作,也可以发送文件 对于聊天部分,它只发送1条消息并关闭连接,另一方应该再次运行程序以接收更多消息,我尝试将其放入这样的循环中 (接收关闭并再次接收),但程序崩溃,

    我收到文件也有同样的问题,
    你知道我怎么解决这个问题吗? IP=textBox2.Text.ToString(); IPAddress IP2=IPAddress.Parse(IP);

                    TCPListen.Start();
    
                TcpClient TCP = TCPListen.AcceptTcpClient();
                //bool a = false;
    
                NetworkStream NetStream = TCP.GetStream();
    
    
    
                //while (!a)
                //{
    
                RijndaelManaged RMCrypto = new RijndaelManaged();
    
    
                byte[] Key = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16 };
                byte[] IV = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16 };
    
    
    
    
                CryptoStream CryptStream = new CryptoStream(NetStream,
                   RMCrypto.CreateDecryptor(Key, IV),
                   CryptoStreamMode.Read);
    
                StreamReader SReader = new StreamReader(CryptStream);
    
    
    
    
                message = SReader.ReadToEnd();
    
                textBox3.Clear();
    
                textBox3.Text = message;
    
                CryptStream.Flush();
    
                SReader.Close();
    
    
                //encryption(NetStream);
    
    
    
    
                NetStream.Flush();
    
                NetStream.Close();
    
                TCPListen.Stop();
                TCP.Close();
    

    它就像一个环 布尔a=假; 而(!a) 它意味着不断地去做。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Robert Seder    14 年前

    首先,你把事情弄得比实际情况复杂得多。对于这样的事情,实际上不需要直接处理套接字甚至TcpClient。使用WCF让客户机彼此通信。这将是非常简单的,你不必担心所有这些繁琐。WCF为您处理所有管道。

    再说一次,我会积极地使用WCF。希望有帮助。