使用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