网络编程学习笔记

计算机网络:地理位置不同的多台具有独立功能的计算机跟通讯设备通过操作系统,通讯协议等实现数据共享,信息传递的计算机系统。

网络编程的目的:实现数据共享与通信

端口:一个程序的进程:

不同的进程有不同的端口号,用来区分软件

单个协议下,端口号不能冲突

公有端口号0~1023

HTTP:80

HTTPS:443

FTP:21

TELENT:23

程序注册端口:1024~49151

Tomcat:8080

MySQL:3306

Oracle:1521

动态私有:49152-65535

netstar-ano//查看所有端口
netstar-ano|findstr"5900"//查看指定端口
takelist|findstr""

通信协议:TCP/IP

TCP:用户传输协议 连接稳定—三次握手—四次挥手—传输完成,连接断开—客户端&服务端

UDP:用户数字报协议 不连接不稳定—客户端服务端界限不明确

IP :网络互联协议

文件上传

服务器端

package lesson01;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

public class TcpServerDemo02 {
    public static void main(String[] args) throws IOException {
        ServerSocket serverSocket = new ServerSocket(9000);//创建服务
        Socket socket=serverSocket.accept();//监听客户端连接
        InputStream is=socket.getInputStream();
        FileOutputStream fos=new FileOutputStream("recever.jpg");//文件输出
        byte[] buffer=new byte[1024];
        int len;
        while ((len=is.read(buffer))!=-1){
            fos.write(buffer,0,len);
        }
        OutputStream os = socket.getOutputStream();
        os.write("接收完毕,请关闭连接".getBytes());
        os.close();
        fos.close();
        is.close();
        socket.close();
        serverSocket.close();
    }
}

客户端

package lesson01;

import java.io.*;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

public class TcpClientDemo02 {
    public static void main(String[] args) throws IOException {
        Socket socket = new Socket(InetAddress.getByName("127.0.0.1"), 9000);
        OutputStream os = socket.getOutputStream();
        FileInputStream fis=new FileInputStream(new File("12.jpg"));
        byte[] buffer=new byte[1024];
        int len;
        while ((len=fis.read(buffer))!=-1){
            os.write(buffer,0,len);
        }
        socket.shutdownOutput();
        InputStream inputStream = socket.getInputStream();
        ByteArrayOutputStream baos= new ByteArrayOutputStream();
        byte[] buffer2=new byte[1024];
        int len2;
        while ((len2=inputStream.read(buffer))!=-1){
            baos.write(buffer,0,len2);
        }
        System.out.println(baos.toString());
        baos.close();
        fis.close();
        os.close();
        socket.close();






    }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值