C#学习之文件传输

本文介绍了使用C#进行文件传输的c/s模式,强调了网络编程中协议和数据类型匹配的重要性。在传输过程中,服务器和客户端需遵循同一套协议,确保消息格式、编码和解码的一致性。作者分享了关键代码段,并提醒读者网络编程需要耐心和实践。
摘要由CSDN通过智能技术生成

             最近一直在忙,今天正好抽空来总结下最近忙的东西。

           文件传输:c/s模式。这样摆在眼前的第一个问题就是 网络编程 , 这里,C#的网络编程,推荐去张子阳的博文学习学习,大牛写的,就是流弊。但是,最近他的博文网站上不去了,大家可以去找找其他人转载张子阳的博文。这里丢一个连接:http://download.csdn.net/detail/pemwoo/4934863, 转载博客:http://www.xuebuyuan.com/295625.html

        不废话了, 进入正题。

       1、 文件传输,服务器与客户端就要使用同一套协议。协议包括了传输消息的格式,还有关于消息的编码与解码。这个相当重要呢。 

       2、在传输数据的过程中,发送方发出去的数据类型是什么,接收方就要使用相同的数据类型的缓冲区去接收。(我就是因为这个,调试老半天了)。比如, 发送方某次发送数据类型为 long, 接收方却用 int 去接收,接收方只能接收前4个字节, 还有4个字节的数据在网络上。

       下面是关键部分代码:

        服务器:

///---请求客户端文件(可执行文件)
        public void SendVersionContextToClient()
        {
            try
            {
                ///---发送消息格式为:文件名长度 、 文件名、内容长度、文件内容
                
               ///------1、发送文件名长度
                string filenName = "1.rar";
                byte[] fileNameLen = BitConverter.GetBytes(filenName.Length);
                lock (ClientNetworkStream)
                {
                    ClientNetworkStream.Write(fileNameLen, 0, fileNameLen.Length);
                    ClientNetworkStream.Flush();
                }

                ///-----2、发送文件名
                byte[] byteFileName = Encoding.Default.GetBytes(filenName);//Encoding.Unicode.GetBytes(filenName);
                lock (ClientNetworkStream)
               
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值