socket,byte[],文件
基于socket的即时通工具,采用c/s模式,文字信息是转化成byte[]然后socket到服务器,服务器再发给客户端,这方面我已经搞定了,类似QQ我想文件也这样搞,想将文件转化成byte[],再走老路子,我想问的第一个问题:文件转化成byte[]后再传,是不是太大,socket支持么?
第二个问题是:我想将文件拖拽到聊天框然后点击“发送”,我的聊天框是2个richtextbox,怎么让他识别我拖拽过来的文件呢? --------------------编程问答-------------------- 补充:拖拽的时候,我只要这form读到这个文件的路径和名称就可以了 --------------------编程问答--------------------
文件可以读一部分,发送一部分,没必要一次性读完,再发送.
RicheTextBox rtb;
rtb.EnableAutoDragDrop = true;
处理DragDrop事件:
string[] formats = e.Data.GetFormats();--------------------编程问答-------------------- Socket文件传输实例:http://download.csdn.net/source/2474322 --------------------编程问答-------------------- 拆成8K、16K之类的包。
foreach (string fmt in formats)
{
if (fmt == "FileNameW"){//todo}
}
不需要RichTextBox内部去表达文件,只要用普通的拖放功能、在控件的事件中去解析拖放事件参数中的属性就行了。实际上,这跟RichTextBox没有关系,任何控件的编程都一样,比如你可以在用户名称Label控件上写完全一模一样的捕获拖放文件的功能代码。拖放功能可以简单地google就行,但是注意不必画蛇添足地去搜索RichTextBox,这个功能跟RichTextBox控件没有关系。 --------------------编程问答--------------------
我只是想表达一下:让大侠们回答的时候,可以拿richtextbox来回答。。我不要原理,原理我懂,搞了这么久oop了,我只是想要具体代码 --------------------编程问答--------------------
你的那些对我没用。。。。白送了你2个积分。。。。
我的socket类自己已经有了,这个项目很庞大的,我只是将了其中一个小功能(传文件)而已,我不可能为了这个将我的类改成你的类。。。
只要帮我回答一下:
1、socket协议限制文件大小么?限制的话,是多少呢?
2、拖拽的时候,怎么操作呢?(用richtextbox为例说明,我用的是vs2005,只要将文件拖拽到rtb的时候,rtb显示文件的路径+文件名就好)
--------------------编程问答-------------------- 没人回答么?那我换个问题
private void rich_Input_DragDrop(object sender, DragEventArgs e)
{
//用记事本打开并显示在屏幕中
//Array arrayFileName = (Array)e.Data.GetData(DataFormats.FileDrop);
//string strFileName = arrayFileName.GetValue(0).ToString();
//StreamReader sr = new StreamReader(strFileName, System.Text.Encoding.Default);
//rich_Input.Text = sr.ReadToEnd();
//sr.Close();
//显示文件的路径名
//Array aryFiles = ((System.Array)e.Data.GetData(DataFormats.FileDrop));
//for (int i = 0; i < aryFiles.Length; i++)
//{
// this.rich_Input.AppendText(aryFiles.GetValue(i).ToString() + Environment.NewLine);
//}
}
这是拖拽到richtextbox时触发的事件,我里面现在什么都没写。我现在想要实现:拖拽进去的文件转化成二进制,帮忙在这个事件中添加一点代码 --------------------编程问答-------------------- --------------------编程问答-------------------- 。。。。那再简单一点吧,怎么把文件(可能是mp4,text,exe),转化成byte[]
然后怎么转回来? --------------------编程问答-------------------- 补充:知道文件路径~~~ --------------------编程问答--------------------
请问这位朋友,内存对齐对协议设定的影响大吗?
补充:.NET技术 , C#