使用socket传送图片, 档案大小总是会漏掉
时间:2009-11-17
来源:互联网
这是从良葛格socket范例程式来练习的
不过很奇怪档案大小总是会漏掉几个byte
照成图片打不开, 有时会漏有时不会, 不过漏掉的次数较多
看了很久, 好像是server那没接收完全,确切的原因还没找到
请各位指点一下
谢谢
client 程式码
server 程式码
不过很奇怪档案大小总是会漏掉几个byte
照成图片打不开, 有时会漏有时不会, 不过漏掉的次数较多
看了很久, 好像是server那没接收完全,确切的原因还没找到
请各位指点一下
谢谢
client 程式码
1 |
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
try {
System.out.println("简易档案传送...");
String remoteHost = "127.0.0.1";
int port = 222;
File file = new File("c://photozip.jpg");
System.out.printf("远端hh主机: %s%n", remoteHost);
System.out.printf("远端主机连接埠: %d%n", port);
System.out.printf("传送档案: %s%n", file.getName());
Socket skt = new Socket(remoteHost, port);
System.out.println("连线成功!尝试传送档案....");
PrintStream printStream = new PrintStream(skt.getOutputStream());
printStream.println(file.getName());
System.out.print("OK! 传送档案....");
BufferedInputStream inputStream = new BufferedInputStream(
new FileInputStream(file));
int readin=1;
int readinx=0;
while ((readin = inputStream.read()) != -1) {
printStream.write(readin);
readinx=readinx+readin;
Thread.yield();
}
System.out.println(readinx);
printStream.flush();
printStream.close();
inputStream.close();
skt.close();
System.out.println("\n档案传送完毕!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
|
server 程式码
1 |
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) {
try {
int port = 222;
System.out.println("简易档案接收...");
System.out.printf("将接收档案於连接埠: %d%n", port);
ServerSocket serverSkt = new ServerSocket(port);
while (true) {
System.out.println("倾听中....");
Socket clientSkt = serverSkt.accept();
System.out.printf("与 %s 建立连线%n", clientSkt.getInetAddress()
.toString());
// 取得档案名称
String fileName = "d://"+
new BufferedReader(new InputStreamReader(clientSkt.getInputStream())).readLine();
BufferedInputStream inputStream = new BufferedInputStream(clientSkt.getInputStream());
BufferedOutputStream outputStream = new BufferedOutputStream(
new FileOutputStream(fileName));
int readin;
int readinx=0;
while ((readin = inputStream.read()) != -1) {
outputStream.write(readin);
readinx=readinx+readin;
Thread.yield();
}
System.out.println(readinx);
outputStream.flush();
outputStream.close();
inputStream.close();
clientSkt.close();
System.out.println("\n档案接收完毕!");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
|
作者: edisondata3 发布时间: 2009-11-17
edisondata3 wrote:
这是从良葛格socket范例程式来练习的
不过很奇怪档案大小总是会漏掉几个byte
照成图片打不开, 有时会漏有时不会, 不过漏掉的次数较多
看了很久, 好像是server那没接收完全,确切的原因还没找到
请各位指点一下
谢谢
一样的问题(原因)
这是从良葛格socket范例程式来练习的
不过很奇怪档案大小总是会漏掉几个byte
照成图片打不开, 有时会漏有时不会, 不过漏掉的次数较多
看了很久, 好像是server那没接收完全,确切的原因还没找到
请各位指点一下
谢谢
一样的问题(原因)
作者: Duncan 发布时间: 2009-11-17
感谢
作者: edisondata3 发布时间: 2009-11-17
请问版主有关於socket传送图片的范例吗
试过很多程式码都没办法....
试过很多程式码都没办法....
作者: alian954 发布时间: 2011-11-29
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28














