各位ggddjjmm请路过这里的帮帮我吧(关于大文件上传的问题) to wangsaokui(无间道II(前传)) ;这我到想过,但必须做客户端和服务器端程序而且,我不知道您是否去验证过其可行性?是否有这方面的应用,谢谢,请继续...... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://www.wrclub.net/study/listarticle.aspx?id=1304 严重关注我想应该要做成像FTP一样,读一部分就写一次磁盘,而不是保存在内存中 肯定是可以的1、用socket传递string,其实是传递byteIPHostEntry lipa = Dns.Resolve("host.contoso.com");IPEndPoint lep = new IPEndPoint(lipa.AddressList[0], 11000); Socket s = new Socket(lep.Address.AddressFamily, SocketType.Stream, ProtocolType.Tcp); try{ s.Connect(lep); } catch (Exception e){ Console.WriteLine("Exception Thrown: " + e.ToString()); } byte[] msg = Encoding.ASCII.GetBytes("This is a test"); // Blocks until send returns. int i = s.Send(msg, 0, msg.Length, SocketFlags.None); // Blocks until read returns. byte[] bytes = new byte[1024]; s.Receive(bytes, 0, s.Available, SocketFlags.None); //Displays to the screen. Console.WriteLine(Encoding.ASCII.GetString(bytes)); s.Shutdown(SocketShutdown.Both); s.Close();这是传递一个string,从以上楼主应该知道把string变成bytes传递是没有问题的2、如何把文件变成bytes//首先创建一个SyncDemo.txtFileStream syncF=new FileStream("SyncDemo.txt",FileMode.OpenOrCreate);//往文件中添加一个字符syncF.WriteByte(Convert.ToByte('A'));//往文件中添加多个字符byte[] writeBytes=Encoding.ASCII.GetBytes("is a first character.");syncF.WriteByte(writeBytes,0,writeBytes.Length);//设置流中当前位置回到头syncF.Seek(0,SeekOrigin.Begin);//读取文件内容,每次读一个字节syncF.ReadByte();//读取多个字节byte[] readBuf=new byte[syncF.Length]syncF.Read(readBuf,0,syncF.Length);现在readBuf就是byte型了,可以用来传递了。 to: Jinniu(金牛)老兄,当然是一边传,一边收喽!不处理那传还有什么意思啊?socket.Receive上面例子有嘛,只是发和收要分别写在服务器和客户两端而已 其实在csdn中以前就有这样的例子,只不过不是用c#而已。基本思路是一样的,实现上也不困难。 to wangsaokui(无间道II(前传)) 对于多客同时上传不知道效果怎么样 ? to wangsaokui(无间道II(前传)) 我马上see 对于多客同时上传不知道效果怎么样 ?=========》你服务器端需要做多个监听listen,作成多线程也行,一有客户端连接,就将byte恢复,但也不会总是每个客户都发100M给服务器吧,服务器早撑死了,多播是一对多,多对一我还要想想,建议换成异步socket看看效率吧。 开个ftp服务器,用ftp传http://expert.csdn.net/Expert/TopicView1.asp?id=3026587 to bitsbird(一瓢.net)我看过了,我们以前做过web 下的但当文件超过50M时,机器就死掉了郁闷...... to Sunmast(速马) 谢谢,马上see to Sunmast(速马) 正在拜读您的大作 to wangsaokui(无间道II(前传)) : 对于一些及时通信软件不知道您用过了没有 (不是指QQ)如;VCM,Active Message等,它们在局域网中文件传送速度很快,我原以为它们工作的原理也是利用Socket,不知道您怎么看 字符串的替换与拆分 写了个简易的中间件,请问通讯部分如何改善? SQLServer2005安装之后没有查询分析器 上传目录权限问题 没分了,求助:.net中如何输出SQL语句? 如何取得数组的中元素的值? 智能设备中datagrid 单元格可编辑 bit字段对应c#中的数据类型 讨厌的方法返回类型!!——求字符串、数组高手! 怎么把struct 拷贝到string 中(急) 一个窗口淡出的问题,望解答! 简单问题/在线等待
我想应该要做成像FTP一样,读一部分就写一次磁盘,而不是保存在内存中
1、用socket传递string,其实是传递byte
IPHostEntry lipa = Dns.Resolve("host.contoso.com");
IPEndPoint lep = new IPEndPoint(lipa.AddressList[0], 11000); Socket s = new Socket(lep.Address.AddressFamily,
SocketType.Stream,
ProtocolType.Tcp);
try{
s.Connect(lep);
}
catch (Exception e){
Console.WriteLine("Exception Thrown: " + e.ToString());
} byte[] msg = Encoding.ASCII.GetBytes("This is a test"); // Blocks until send returns.
int i = s.Send(msg, 0, msg.Length, SocketFlags.None); // Blocks until read returns.
byte[] bytes = new byte[1024];
s.Receive(bytes, 0, s.Available, SocketFlags.None); //Displays to the screen.
Console.WriteLine(Encoding.ASCII.GetString(bytes));
s.Shutdown(SocketShutdown.Both);
s.Close();
这是传递一个string,从以上楼主应该知道把string变成bytes传递是没有问题的
2、如何把文件变成bytes//首先创建一个SyncDemo.txt
FileStream syncF=new FileStream("SyncDemo.txt",FileMode.OpenOrCreate);
//往文件中添加一个字符
syncF.WriteByte(Convert.ToByte('A'));
//往文件中添加多个字符
byte[] writeBytes=Encoding.ASCII.GetBytes("is a first character.");
syncF.WriteByte(writeBytes,0,writeBytes.Length);
//设置流中当前位置回到头
syncF.Seek(0,SeekOrigin.Begin);
//读取文件内容,每次读一个字节
syncF.ReadByte();
//读取多个字节
byte[] readBuf=new byte[syncF.Length]
syncF.Read(readBuf,0,syncF.Length);
现在readBuf就是byte型了,可以用来传递了。
老兄,当然是一边传,一边收喽!不处理那传还有什么意思啊?
socket.Receive
上面例子有嘛,只是发和收要分别写在服务器和客户两端而已
对于多客同时上传不知道效果怎么样 ?
to wangsaokui(无间道II(前传))
我马上see
=========》
你服务器端需要做多个监听listen,作成多线程也行,一有客户端连接,就将byte恢复,但也不会总是每个客户都发100M给服务器吧,服务器早撑死了,多播是一对多,多对一我还要想想,建议换成异步socket看看效率吧。
http://expert.csdn.net/Expert/TopicView1.asp?id=3026587
我看过了,我们以前做过web 下的但当文件超过50M时,机器就死掉了
郁闷......
谢谢,马上see
正在拜读您的大作
to wangsaokui(无间道II(前传)) :
对于一些及时通信软件不知道您用过了没有
(不是指QQ)如;VCM,Active Message等,它们在局域网中文件传送速度很快,我原以为它们工作的原理也是利用Socket,不知道您怎么看