网络编程-Socket通信实现服务器与客户端互传文件(JAVA语言实现)

网络编程-Socket通信实现服务器与客户端互传文件(JAVA语言实现)

在网络通信协议下,实现网络互连的不同计算机上运行的程序间可以进行数据交换.

网络编程三要素:ip地址、端口、协议

ip地址:

每台计算机指定的一个标识符,127.0.0.1是回送地址,可以代表本机地址 ,一般用来测试使用

ipconfig:命令行中查看本机地址

ping ip地址:检查网络是否连通

端口

两个应用程序的通信。IP地址是可以唯一标识网络中的设备,端口就是可以唯一标识设备中的应用程序。

端口号:用两个字节表示的整数,它的取值范围是0-65535.其中0-1023之间的端口号用于一些知名的网络服务和应用,普遍的应用程序要使用1024以上。

协议:

连接和通信的规则称为网络的通信协议.

常见的协议UDP和tcp

UDP:用户数据报协议.

无连接的通信协议,即使在传输数据的时候,发送端和接收端不建立连接.

消耗资源小,通信效率高.

UDP适用于音频,视频和普通数据的传输.

TCP:传输控制协议

是面向连接的同学,即传输数据之前,在发送端和接收端建立逻辑连接,然后再传输数据.

两台计算机无差错的数据传授.

需要经过三次握手,四次挥手

三次握手:

  • 客户端向服务器端发出连接请求,等待服务确认

  • 服务器端向客户端回送一个响应,通知客户端收到了连接请求

  • 客户端再次向服务器端发送确认信息,确认连接

TCP是可以保证数据的安全的传输,上传文件,下载文件等等

Socket实现客户端向服务器发送文件

网络编程-Socket通信实现服务器与客户端互传文件(JAVA语言实现)_第1张图片

网络编程-Socket通信实现服务器与客户端互传文件(JAVA语言实现)_第2张图片

先运行服务器,再运行客户端部分的代码。

serverDemo02.java

package demo02;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerDemo02 {
   
    public static void main(String[] args) throws Exception{
   
        //创建服务
        ServerSocket serverSocket = new ServerSocket(9000);
        //监听客户端连接

        Socket socket = serverSocket.accept();//阻塞式监听会一直等待客户端连接
        //获取输入流
        InputStream is = socket.getInputStream();

        //文件输出
        File file=new File("E:/receive3.jpg");//接收文件地址
        FileOutputStream fos = new FileOutputStream(file);
        byte[] buffer = new byte[1024];
        int len;
        while ((len = is.read(buffer)) != -1) {
   

            fos.write(buffer,0,len);
        }//关闭资源
        fos.close();
        is.close();
        socket.close();
        serverSocket.close();
    }
}

clientDemo02.java

package  demo02;

import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

public class clientDemo02 {
   
    public static void main(String[] args) throw

你可能感兴趣的:(Java编程,网络,udp,网络协议,java,服务器)