当前位置: 技术问答>java相关
为什么点击超链接总是出现下面的内容?
来源: 互联网 发布时间:2017-04-28
本文导语: 小罗子 一级(初级) user1 100 1175485 小弟要使用SOCKET传输文件,想使用CSocketFile类,哪位哥哥教教我啊!!!! 81622 qyluo VC/MFC 网络编程 26 2002-11-14 11:04:45 100 0 5004 0 使用SOCKET传输文件,不知道如何使用CSocketFil...
小罗子 一级(初级) user1 100 1175485 小弟要使用SOCKET传输文件,想使用CSocketFile类,哪位哥哥教教我啊!!!! 81622 qyluo VC/MFC 网络编程 26 2002-11-14 11:04:45 100 0 5004 0 使用SOCKET传输文件,不知道如何使用CSocketFile类,哪位哥哥教教我啊!!!! 小罗子 一级(初级) user1 100 7561357 1175485 81622 qyluo 0 顶!!!!!!!!!!!!!!!!顶!!!!!!!!!!!!!!!顶!!!!!!!!!!!!!! 2002-11-14 11:22:39 小罗子 一级(初级) user1 100 7561870 1175485 81622 qyluo 0 ??????????? 2002-11-14 11:48:29 白蓝鸽 三级(初级) user3 100 7561969 1175485 91547 depuw 0 文件传送,得考虑分开传,每一个部分都用一个表头。 bailange.8u8.com里有一个关于用CSocketFile传送消息的例子,看看或许对你有帮助! 2002-11-14 11:53:07 小罗子 一级(初级) user1 100 7562092 1175485 81622 qyluo 0 谢谢!! 2002-11-14 11:58:16 白蓝鸽 三级(初级) user3 100 7562161 1175485 91547 depuw 0 http://bailange.8u8.com/example/chat.rar 2002-11-14 12:00:51 白蓝鸽 三级(初级) user3 100 7562178 1175485 91547 depuw 0 那是以前写的,代码比较乱,不太好意思! 2002-11-14 12:01:39 2B 一级(初级) user1 100 7564329 1175485 45129 sunhuiNO1 0 呵呵,直接用API写也很简单 2002-11-14 13:18:31 不肯冷却的芯 五级(中级) user5 100 7565585 1175485 292340 Hanzo 0 [server] | [client] CSocket sockServ; | CSocket sockClient; | | | //创建socket | sockClient.Create(); sockServ.Create(nPort); | | | | sockClient.Connect(strAddr,nPort) sockServ.Listen(); | | | | CSocketFile file(&sockClient); CSocket sockRecv; | | sockServ.Accept(sockRecv); | CArchive arIn(&file,CArchive::load); | | CArchive arOut(&file,Archive::store); CSocketFile file(&sockRecv); | | | | arIn>>dwValue; CArchive arIn(&file,CArchive::load); arOutdwValue; //接收 | arOutarIn; //传BUFFER char arr[128]; for(int i=0; i>arIn; 2002-11-14 18:34:19 晒太阳 一级(初级) user1 100 7576265 1175485 364689 lijie1981 0 分两部分来传,先把文件的属性传过去.再把文件头传过去. 2002-11-14 21:58:19 小罗子 一级(初级) user1 100 7631120 1175485 81622 qyluo 0 谢谢各位,有没有写的好点的代码来借鉴一下啊!!!!! 2002-11-18 14:32:43 一级(初级) user1 100 7634608 1175485 267882 zhouzcy 0 详细资料请参阅http://bbs.glorisoft.com/ubb/Forum2/HTML/000206.html 下面给出服务器端代码:void SendFile() { #define PORT 34000 /// Select any free port you wish AfxSocketInit(NULL); CSocket sockSrvr; sockSrvr.Create(PORT); // Creates our server socket sockSrvr.Listen(); // Start listening for the client at PORT CSocket sockRecv; sockSrvr.Accept(sockRecv); // Use another CSocket to accept the connection CFile myFile; myFile.Open("C:\ANYFILE.EXE", CFile::modeRead | CFile::typeBinary); int myFileLength = myFile.GetLength(); // Going to send the correct File Size sockRecv.Send(&myFileLength, 4); // 4 bytes long byte* data = new byte[myFileLength]; myFile.Read(data, myFileLength); sockRecv.Send(data, myFileLength); //Send the whole thing now myFile.Close(); delete data; sockRecv.Close(); } 以下是客户端代码 void GetFile() { #define PORT 34000 /// Select any free port you wish AfxSocketInit(NULL); CSocket sockClient; sockClient.Create(); // "127.0.0.1" is the IP to your server, same port sockClient.Connect("127.0.0.1", PORT); int dataLength; sockClient.Receive(&dataLength, 4); //Now we get the File Size first byte* data = new byte[dataLength]; sockClient.Receive(data, dataLength); //Get the whole thing CFile destFile("C:\temp\ANYFILE.EXE", CFile::modeCreate | CFile::modeWrite | CFile::typeBinary); destFile.Write(data, dataLength); // Write it destFile.Close(); delete data; sockClient.Close(); } 2002-11-18 16:52:01 托尼 二级(初级) user2 100 7634779 1175485 321815 tony1130 0 上面的程序代码没有考虑到文件的大小问题,当传一个很大的文件时(如几十M,上百M),这种代码会出错,所以一定要自己分割打包以后,再传送 2002-11-18 16:58:37 渴望自由自在地写程序 二级(初级) user2 100 7976463 1175485 375162 HongHuer 0 各位朋友们: 文件要不要分什么格式呢? 比如是 .txt .cpp .mp3 .mpg .jpg 都可以象楼上的朋友的程序那样发送吗? 2002-12-7 8:44:32 冷的时候我想死 四级(中级) user4 100 7978941 1175485 33479 kenryHuang 0 同意 tony1130(托尼) 上面zhouzcy() 的代码只能发送小文件上几M的文件都不行,我这里试过。 2002-12-7 14:01:20 兰企鹅||南极俺最帅 三级(初级) user3 100 7979018 1175485 265041 RomanticProgrammer 0 学习. 2002-12-7 14:05:16 Red-Sun 一级(初级) user1 100 7991199 1175485 304694 GirlCool 0 CSocketFile通常是用来进行序列化,比如你有多个数据,包括结构体数据,想要发送到对方,如果研究CSocketFile的MFC源代码,你会发现,CSocketFile虽然从CFile派生,但CSocketFile::Open()等函数里只有一个ASSERT(FALSE),也就是说,你不能调用CSocketFile的Open函数来打开文件,那么也就无法进行文件的传输. 但是由于CSocketFile的Open函数是一个虚函数,你可以重载它,以实现自己的打开文件,读取,传输等问题. 所以原始的CSocketFile只能用来序列化数据到网络的另一方,而不能进行文件传输.要进行文件传输,比如从CSocketFile派生类,并重载其虚函数. 2002-12-8 15:54:23 地狱未空暂不成佛五级(中级)user51008696676134074277360infosail0蹭点分,渡自己成星 2003-01-09 09:42:00剑神独孤求败四级(中级)user41008700551133420061894ZHANG96520没收到2003-01-09 11:24:00地狱未空暂不成佛五级(中级)user51008716296134094777360infosail0接点分,渡自己成星2003-01-09 19:00:00地狱未空暂不成佛五级(中级)user51008716298134320577360infosail0接点分,渡自己成星2003-01-09 19:00:00
|
晕死~~~~
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。