java网络基础—TCP
来源:互联网 发布:debian安装软件命令 编辑:程序博客网 时间:2024/06/09 17:26
TCP主要用于收发文件,它与UDP不同,如同QQ视频一样,对方必须接受才能开始,它主要有ServeSocket和Socket两个类,ServeSocket为服务端Socket为客户端,都可以实现收发文件的操作。
当客户端发送文件到服务端时客户端主要步骤是:
1.客户端创建Socket对象(服务器IP,端口)
2.Socket对象方法 getOutputStream获取字节输出流,写到服务器
3.关闭客户端资源
服务端主要操作是:
1. 创建ServerSocket对象,打开端口
2. 使用ServerSocket对象方法accept获取客户端连接对象
3 Socket getInputStream获取字节输入流,读取客户端发来数据,将数据存储
4 关闭服务端
package tcp;/** * 客户端发送文件到服务端 * 1.新建客户端对象,设置服务端端口和IP * 2.新建输出流将文件或数据发送到服务端 * 3.关闭资源 */import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;public class Client1 { public static void main(String[] args) { //Socket对象,服务器端口,IP Socket socket = null; //捕捉异常服务器的端口和IP不存在 try { socket = new Socket("127.0.0.1",2000); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } //输出流,将文件发送到服务端 OutputStream outputStream = null; try { outputStream = socket.getOutputStream(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } //读取文件 File file=new File("/home/z/桌面/a1.png"); //输出图片 FileInputStream fileInputStream = null; try { fileInputStream = new FileInputStream(file); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } //输出 byte[] bs=new byte[1024]; int len=0; try { while((len=fileInputStream.read(bs))!=-1) { outputStream.write(bs); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { //关闭 try { socket.close(); outputStream.close(); fileInputStream.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }}
package tcp;/** * 服务器接受客户端发送的文件 * 1.设置服务器的端口(运行时需要先把服务端口打开) * 2.使用accept方法获取连接对象 * 3.新建输入流接受客户端发来的数据 * 4.新建输出流把输入的数据写入文件 * 5.关闭资源 */import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;import java.net.UnknownHostException;public class Serve1 { public static void main(String[] args) { //服务器打开端口 ServerSocket serverSocket = null; try { serverSocket = new ServerSocket(2000); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } //使用accept获取客户端连接对象 Socket socket = null; try { socket = serverSocket.accept(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } //输入流接收客户端发来的文件 InputStream inputStream = null; try { inputStream = socket.getInputStream(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } //保存的文件地址 File file =new File("/home/z/桌面/new/tu.png"); //输出到文件 FileOutputStream fileOutputStream = null; try { fileOutputStream = new FileOutputStream(file); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } int len=0; //写入输出 byte[] bs=new byte[1024]; try { while ((len=inputStream.read(bs))!=-1) { fileOutputStream.write(bs, 0, len); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); //关闭资源 }finally{ try { socket.close(); inputStream.close(); serverSocket.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }}
阅读全文
0 0
- java网络基础—TCP
- java基础----网络编程 tcp
- java基础之网络基础tcp\udp
- 黑马程序员——Java基础->网络编程(TCP)
- Java基础——网络编程(下)之TCP
- Java基础——网络编程(TCP、UDP)
- 黑马程序员——Java基础---网络编程(TCP编程)
- java基础学习笔记——网络TCP/Client&Server
- java基础—10.网络编程TCP/UDP
- java基础--网络编程之TCP
- Java基础-网络编程(TCP练习)
- Java基础-网络编程(TCP复制文件)
- Java基础-网络编程(TCP-上传图片)
- Java基础--网络编程之TCP
- JAVA基础学习之TCP网络编程
- java的基础网络编程:TCP/UDP
- java基础之网络(TCP-Socket)
- TCP、UDP协议,java网络通信基础
- matlab与机器学习(二)程序基本操作(含代码解析)
- maopao
- xuanze
- BZOJ 4870 [Shoi2017] 组合数问题
- 对于运行时权限的探究
- java网络基础—TCP
- 测试开发行业正在洗牌,新的机会是什么
- 欢迎使用CSDN-markdown编辑器
- 从尾到头打印链表
- 3611: [Heoi2014]大工程
- windows操作系统之间的时间精确同步
- PAT b1001-1005题解
- C++中内存分配方式、空指针及野指针的区别
- 2017.7.7 C组总结