题目:使用TCP协议写一个可以上传文件的服务器和客户端。
大家当看到这道题的时候,会想到什么呢?
如果把这道题用WEB技术,相信有很多的方法来实现。列如:现在有很多Web程序都有上传功能,实现上传功能的组件或框架也很多,如基于java的Commons FileUpload、还有Struts1.x和Struts2中带的上传文件功能(实际上,Struts2在底层也使用了Commons FileUpload)。在asp.net中也有相应的上传文件的控件。
那么自己只学到了Java基础知识要怎么做呢?
我对于这道题的疑问:
1.怎么选取文件
2.传数据的时候对方怎么存
3.怎么获取对对方的格式
4.怎么命名
对于这些疑问呢,我来讲解一下:
1.获取文件,大家都知道怎么做,使用File类来操作文件。
2.其实第二和第三个疑问属于一个问题,都是要知道对方传递的文件的后缀名,就是属性。那么怎么获取对方的后缀名呢,相信大家一定都会的。String类中的方法大家肯定知道怎么用。
3.那么现在就要传递了,客户端把文件通过IO流来进行传输,然后再最后在传输文件的(名称和)属性。
4.服务器端来接收数据,然后使用String类型来接收,截取最后的属性。
//我之前传递的是:“:”+(文件名称和)文件属性
int end = str.lastIndexOf(":");
//得到文件名称
String s1 = str.substring(end+1,str.length());
这就是我对这道题的理解,如果大家还有什么想法可以发表贴出来。大家共同学习,共同进步。
|