| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1079 人关注过本帖
标题:TCP的文件传输程序的问题!
取消只看楼主 加入收藏
trhuang
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2007-4-1
收藏
 问题点数:0 回复次数:4 
TCP的文件传输程序的问题!

一个基于TCP的文件传输程序.每次传输的数据不能超过100字节,即超过100字节就将文件分割再发送!
红色字部分不怎么动得实现!

是应该一个一个字节计算到了100然后发送还是有什么别的方法!!!!!

搜索更多相关主题的帖子: TCP 文件 传输 字节 
2007-06-24 18:49
trhuang
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2007-4-1
收藏
得分:0 

没办法啊!作业!我也觉的好郁闷!老是写不切实际的题目!

2007-06-24 22:10
trhuang
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2007-4-1
收藏
得分:0 

再分割成100字节一块的
就这一点不明白!

2007-06-24 22:57
trhuang
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2007-4-1
收藏
得分:0 

fis=new FileInputStream("data.txt");
int sum=fis.available();
int i=0;
while(i<sum){
if((sum-i) >100){
byte s[]=new byte[100];
fis.read(s,0,100);
String str=new String(s);
System.out.println(str);
}
else
{
byte s1[]=new byte[100];
fis.read(s1,0,(sum-i));
String str=new String(s1);
System.out.println(str);

}
i+=100;

}

分块那部分我是这样实现的!不知可不可以!

2007-06-25 08:48
trhuang
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2007-4-1
收藏
得分:0 

服务端:
public class t10_5_s extends JFrame {
private ServerSocket server;
private Socket sock;
private DataInputStream dis;
private DataOutputStream dos;
private FileInputStream fis;
private PrintWriter pw;

public t10_5_s()
{

try {
server=new ServerSocket(8888);
sock=server.accept() ;
dos=new DataOutputStream (sock.getOutputStream() );
dos.writeUTF( "ok!");
dis=new DataInputStream (sock.getInputStream() );
pw=new PrintWriter (new FileWriter("d1.txt"));
String str=null;
while(true){

str=dis.readUTF();
System.out.println(str);
pw.print(str);

}
} catch (IOException e1) {
e1.printStackTrace();
}finally{
pw.close();
try {
sock.close();
server.close();
} catch (IOException e) {
e.printStackTrace();
}
}

}
public static void main(String[] args) {
new t10_5_s();
}
}
java.io.EOFException
at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:323)
at java.io.DataInputStream.readUTF(DataInputStream.java:572)
at java.io.DataInputStream.readUTF(DataInputStream.java:547)
at t10_5_s.<init>(t10_5_s.java:44)
at t10_5_s.main(t10_5_s.java:65)

客户端:
public class t10_5_c extends JFrame{
private Socket sock;
private DataInputStream dis;
private DataOutputStream dos;
private FileOutputStream fos;
private FileInputStream fis;
public t10_5_c()
{

try {
sock=new Socket("127.0.0.1",8888);
dis=new DataInputStream (sock.getInputStream() );
System.out.println(dis.readUTF());
fis=new FileInputStream("data.txt");
dos=new DataOutputStream(sock.getOutputStream());

int sum=fis.available();
int i=0;
while(i<sum){
if((sum-i) >100){
byte s[]=new byte[100];
fis.read(s,0,100);
String str=new String(s);
System.out.println(str);
dos.writeUTF( str);
}


else
{
byte s1[]=new byte[sum-i];
fis.read(s1,0,(sum-i));
String str=new String(s1);
System.out.println(str);
dos.writeUTF( str);

}
i+=100;

}



} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
finally{try {
sock.close();
} catch (IOException e1) {
// TODO 自动生成 catch 块
e1.printStackTrace();
}}

}

public static void main(String[] args) {
new t10_5_c();
}
}
红色部分是错误!想了好久没搞不懂!

2007-06-25 14:34
快速回复:TCP的文件传输程序的问题!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015111 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved