请教用SOCKET传送多个文件的问题~! 把文件打包成一个.jar文件在传输吧! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 将文件名放在一个String数组里面,循环读取。 File类的list 方法反回一个数组然后用个for就可以了 用File的list方法返回一个数组然后再用一个for 觉得实用的应该是自己定义自己的传送协议,比如: 一个文件开始传送 -> 文件流 -> 一个文件传送结束 ...循环以上 我觉得你的概念要纠正一下。你看过http协议的用法吗?服务器等待着客户,客户要什么文件就问服务器要,而服务器什么都不管,只负责发送客户要求的文件。建议看一下http协议的用法。 一段简要的程序,不知道可不可以帮到你。Client:...public static void main(String args[]){ Socket client = new Socket("localhost", 8888); String fileName[]={ "file1", "file2", "file3" }; PrintWriter out = new PrintWriter(client.getOutputStream, true); for(int i = 0; i < fileName.length; i++){ FileInputStream fileInput = new FileInputStream(fileName[i]); BufferedReader read = new BufferedReader(new InputStreamReader(fileInput)); String msg; while((msg=read.readLine())!=null){ write.println(msg); } write.println("****NEXT****");//作为一个标志信息发给服务端 fileInput.close(); read.close(); }}Server:...public static void main(String args[]){ ... ServerSocket server = new ServerSocket(8888); client = serer.accpet(); BufferedReader read = new BufferedReader(new InputStreamReader(clieng.getInputStream())); String msg; while((msg=read.readLine())!=null){ if(msg.equals("****NEXT****")){ /*处理下一个文件*/ } }} 用File的list方法返回一个数组然后再用一个for newman0708(nch):小弟功力不够啊,可能是又些理解错误。我是这样定义的:while(true){client 发请求 -》S响应ClienT 发目录名S响应文件名S响应文件大小C响应S发文件流}这样对不对啊,要是你,你会怎么做啊? OneNight(OneNightStand) 的方法是可以的,只要在传送的时候设置一个标志就可以了!·!!! mycomputermysky(牧野流星) :OnNightStand? 一夜情方法?是什么意思啊? 呵呵,能够给我一份:[email protected] 能不能也给发一份呢?[email protected] 面试题目!!!!! AWT/SWING如何做出画面切换的效果 如何从文本获取指定的字符 读文件,报java.lang.OutOfMemoryError 请问一下synchronized如何实现同步 这个问题出在哪里?谢谢! 谁有jive源码能给一份吗?或者pet store源码谁有能给一份吗? 关于Connection的疑问 有一个问题一真的很奇怪!(store procedure) poi读取文件类型错误,导致源文件为空是怎么回事,能解释一下poi原理层面解释一下吗? 在java中如何取得CPU利用率,内存利用率? 关于ResultSet类的问题:
然后用个for就可以了
然后再用一个for
一个文件开始传送 ->
文件流 ->
一个文件传送结束
...循环以上
我觉得你的概念要纠正一下。你看过http协议的用法吗?服务器等待着客户,客户要什么文件就问服务器要,而服务器什么都不管,只负责发送客户要求的文件。建议看一下http协议的用法。
...
public static void main(String args[]){
Socket client = new Socket("localhost", 8888);
String fileName[]={
"file1",
"file2",
"file3"
};
PrintWriter out = new PrintWriter(client.getOutputStream, true);
for(int i = 0; i < fileName.length; i++){
FileInputStream fileInput = new FileInputStream(fileName[i]);
BufferedReader read = new BufferedReader(new InputStreamReader(fileInput));
String msg;
while((msg=read.readLine())!=null){
write.println(msg);
}
write.println("****NEXT****");//作为一个标志信息发给服务端
fileInput.close();
read.close();
}
}Server:
...
public static void main(String args[]){
...
ServerSocket server = new ServerSocket(8888);
client = serer.accpet();
BufferedReader read = new BufferedReader(new InputStreamReader(clieng.getInputStream()));
String msg;
while((msg=read.readLine())!=null){
if(msg.equals("****NEXT****")){
/*处理下一个文件*/
}
}
}
然后再用一个for
while(true){
client 发请求 -》
S响应
ClienT 发目录名
S响应文件名
S响应文件大小
C响应
S发文件流
}
这样对不对啊,要是你,你会怎么做啊?