java使用TCP,由客户端向服务端传输图片,(电脑与电脑)或(同一台电脑)
发布日期:2021-10-12 20:08:32 浏览次数:3 分类:技术文章

本文共 2285 字,大约阅读时间需要 7 分钟。

概述

1.完成图片的复制,与客户端向服务端传输文字相差不大。都是:	1.1基于TCP协议的服务器端        1.创建服务器套接字,绑定端口号(new ServerSocket(1008))        2.侦听客户连接,返回socker(listener.accept())        3.获输入、输出流        4.处理数据        5.关闭资源					1.2基于TCP协议的客户端            1.创建客户端套接字,指定服务器的地址和端口号            2.获输入、输出流            3.处理数据            4.关闭资源2.需要注意的是:1.首先启动服务端Server 的服务,然后启动客户端Client 							2.由客户端FileInputStream 向电脑a读取图片,BufferedOutputStream 再向电脑a写入图片							3.由服务端BufferedInputStream 从电脑b读取图片,FileOutputStream 再向电脑b 写入图片

1.服务端代码

package d04_test;/* * zt * 2020/8/10 * 20:36 * */import java.io.BufferedInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class Server {    public static void main(String[] args) throws IOException {        //1.创建        ServerSocket listener = new ServerSocket(10086);        //2.侦听        System.out.println("服务器已经启动");        Socket socket = listener.accept();        //3.获取数据        BufferedInputStream bis = new BufferedInputStream(socket.getInputStream());        //4.处理数据        FileOutputStream fos = new FileOutputStream("f:\\yyy.jpg");        byte[] buf = new byte[1024];        int len = 0;        while((len = bis.read(buf))!=-1){            fos.write(buf, 0, len);        }        //5.关闭资源        fos.close();        bis.close();        socket.close();        listener.close();        System.out.println("复制完毕");    }}

2.客户端代码

package d04_test;/* * zt * 2020/8/10 * 20:37 * */import java.io.BufferedOutputStream;import java.io.FileInputStream;import java.net.Socket;public class Client {    public static void main(String[] args) throws Exception {        //1.创建        Socket socket = new Socket("10.0.139.160",10086);        //2.获取输入流输出流        BufferedOutputStream bos = new BufferedOutputStream(socket.getOutputStream());        //3.处理数据        FileInputStream fis = new FileInputStream("f:\\aaa.jpg");        byte[] buf = new byte[1024];        int len = 0;        while ((len = fis.read(buf))!=-1){            bos.write(buf, 0, len);            bos.flush();        }        //4.关闭资源        bos.close();        fis.close();        socket.close();        System.out.println("发送完毕");    }}

3.运行结果

Server运行结果:

服务器已经启动复制完毕Process finished with exit code 0

Client运行结果:

发送完毕Process finished with exit code 0

转载地址:https://blog.csdn.net/qq_39773004/article/details/107922047 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:UDP实现多人聊天室
下一篇:java实现客户端服务端互发消息并接收

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年03月21日 14时53分41秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

当集合a为空集时a的取值范围_1.1.2 集合间的基本关系 2019-04-21
vue 可合并表格组件_Vue实战046:详解Mixins混入使用和注意事项 2019-04-21
python包怎么做双重差分did分析_多变量相关性分析(一个因变量与多个自变量) 2019-04-21
fi sap 凭证冲销 稅_SAP中的成本要素 2019-04-21
mysql幻读是什么意思_MySQL中的幻读,你真的理解吗? 2019-04-21
mysql执行计划中性能最差的是_MySQL性能优化(七):MySQL执行计划,真的很重要,来一起学习吧... 2019-04-21
易语言执行mysql命令_易语言通过“打开”命令操作数据库 2019-04-21
mysql slave 1062_mysql主从同步slave错误1062 2019-04-21
mysql构造器_MySQL行构造器表达式优化(Row Constructor Expression) 2019-04-21
2008日志清理 server sql_SQL Server 2008 清除日志 2019-04-21
mac mysql root 权限_Mac平台重新设置MySQL的root密码 2019-04-21
mysql新增一列_MySQL-ProxySQL中间件 2019-04-21
mysql 30入门_30分钟带你快速入门MySQL教程 2019-04-21
kangle主机怎么配置MySQL_kangle web服务+easypanel主机控制面板快速搭建网站和数据库以及管理空间详细教程... 2019-04-21
mysql 翻页 存储过程_MySQl通用翻页(存储过程) 2019-04-21
mysql 自带压测工具_centos7中mysql自带压测工具mysqlslap使用 2019-04-21
python中pca算法_使用python的numpy库实现PCA算法 2019-04-21
2020word替换所有文本_Excel字符函数(5):REPLACE、SUBSTITUTE查找替换函数之区别... 2019-04-21
win10安装ipython_win10环境 ipython app.py 8080 这里为什么是ipython 这步无法启动 2019-04-21
statelesswidget 初始化执行方法_Spring的初始化回调你真的搞懂了吗? 2019-04-21