Socket编程(一)TCP传输文件
来源:互联网 发布:泗洪网络问政 编辑:程序博客网 时间:2024/05/17 10:39
Socket作为应用网络交互的一种方式,可以称作为套接字。应用通常通过套接字来向网络发出请求或者应答请求。下面实现一个Socket基于TCP协议传输文件的交互应用。主要方法都在子线程中实现。
这是Socket服务端,也就是作为接收端。
class ServerThread extends Thread{ @Override public void run() { ServerSocket serverSocket=null; try { //创建一个ServerSocket对象,并在4567端口监听 serverSocket=new ServerSocket(4567); //调用ServerSocket的accept的方法,阻塞接收客户端请求 Socket socket=serverSocket.accept(); InputStream inputStream=socket.getInputStream(); //实例化文件输出流的位置和文件名和位置 FileOutputStream out = new FileOutputStream(Environment.getExternalStorageDirectory()+"/aa.jpg"); byte buffer[]=new byte[1024*4]; int temp=0; //从InputStream中读取接收的数据 while((temp=inputStream.read(buffer))!=-1){ //通过输出流将文件生成 out.write(buffer,0,temp); out.flush(); } inputStream.close(); out.close(); } catch (IOException e) { e.printStackTrace(); }finally { try { serverSocket.close(); } catch (IOException e) { e.printStackTrace(); } } super.run(); } }
下面是作为Socket端,也就是发送信息的客户端。
class ServerThread extends Thread{ @Override public void run() { try { //创建一个Socket对象,指定服务器端的IP和端口 Socket socket=new Socket("192.168.31.185",4567); //使用InputStream读取内存文件 InputStream inputStream=new FileInputStream(Environment.getExternalStorageDirectory()+"/Download/aa.jpg"); OutputStream outputStream=socket.getOutputStream(); byte buffer[]=new byte[4*1024]; int temp =0; //读取InputStream的数据,写入到OutputStream中 while ((temp=inputStream.read(buffer))!=-1){ outputStream.write(buffer,0,temp); outputStream.flush(); } outputStream.close(); } catch (IOException e) { e.printStackTrace(); } super.run(); } }
关于文件操作和Socket操作需要网络权限和文件操作权限,此处提示一下。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.INTERNET"/>
0 0
- Socket编程(一)TCP传输文件
- socket学习(一)tcp传输文件的小程序
- Windows Socket编程之TCP实现大文件的传输
- 网络编程__【TCP传输】(重点)【Socket & ServerSocket】
- Java Socket编程(一)Socket传输模式
- Java Socket编程(一) Socket传输模式
- socket 编程入门教程(一)TCP server 端:2、socket与文件描述符
- socket 编程入门教程(一)TCP server 端:2、socket与文件描述符
- 基于TCP的Socket文件双向传输(可并发)
- java tcp/ip socket编程(一)
- JAVA TCP/IP Socket 编程(一)
- linux TCP Socket编程(一)
- 基于TCP的Socket文件双向传输
- 【视频传输】一、Opencv结合socket进行视频传输(TCP协议)
- 基本TCP socket编程一
- 网络编程感想(一)基于socket传输延迟问题
- python socket编程(传输字符、文件、图片)
- Socket编程实现文件的传输II(封装)
- Android之DatePicker使用
- javaSE(15)(缓冲流、转换流和标准系统I0流)
- 利用json和ajax模拟获取最新资讯
- 慢慢(每次一度)转向目标
- Java设计模式之适配器Adapter
- Socket编程(一)TCP传输文件
- ipad标准参数
- “当前不会命中断点。源代码与原始版本不同”解决
- UML——活动图
- 2015-12-01
- [Javascript OO] 构造函数
- 扩展SeaJS模块定义中的module参数的应用示例
- 内联,外联,全联结,交叉联结
- 高性能 TCP & UDP 通信框架 HP-Socket v3.3.2 发布