网络编程基础知识

ip地址:网络地址+主机地址
域名:ip地址的映射,便于记忆
—— 例如:www.baidu,com
端口号:用于标识计算机网络上的某个特定程序

InetAddress类

可通过域名/主机名获取InetAddress对象

        InetAddress host = InetAddress.getLocalHost();
        System.out.println("本地主机的inetAddress对象为" + host);
        //主机名+ip地址
        InetAddress host1 = InetAddress.getByName("PC-20191025ZWMM");
        System.out.println("该主机名对应的inetAddress对象为" + host1);
        InetAddress host2 = InetAddress.getByName("www.hao12345.com");
        System.out.println("该域名对应的inetAddress对象为" + host2);
        System.out.println("该对象对应的主机名/域名为" + host2.getHostName());
        System.out.println("该对象对应的ip地址为" + host2.getHostAddress());

TCP——传输控制协议

可靠的,可进行大数据量传播,效率低

socket类

socket套接字
通信两端都要有socket,是两台机器间通信的端点
socket允许程序吧网络连接当作一个流,数据在两个socket之间通过io传输

主动发起通信的为客户端,等待通信请求的为服务端

读写数据的方法
socket,getOutputStream();
socket.getInputStream();
  • 字节流传输
服务端
//在本机的9999端口监听
         ServerSocket serverSocket = new ServerSocket(9998);
//serversocket通过accept返回socket
        Socket socket = serverSocket.accept();
//读取客户端传来的数据
//若没有客户端连接的话,程序就会阻塞
        InputStream inputStream = socket.getInputStream();
//IO读取
        byte buf[] = new byte[1024];
        int len = 0;
        while((len = inputStream.read(buf)) != -1){
   
            System.out.println(new String(buf,0,len));
        }
//开始写入
//直接写入
        OutputStream outputStream = socket.getOutputStream();
        outputStream.write("hello,client".getBytes());
        socket.shutdownOutput();//写入结束后一定做标记

//关闭流和socket
        inputStream.close();
        outputStream.close();
        socket.close();
        serverSocket.close();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值