Socket编程(网络编程)

网络编程的目的:

传播交流信息,数据交换,通信

网络编程的三要素:

IP地址、端口号、协议

网络的通信两个要素;
  • IP和端口号:IP
  • 网络通信协议:UDP,TCP

IP

IP地址:网络号段+主机号段

  • 唯一定位一台网络上计算机
  • 本机:127.0.0.1或localhost
  • 两个DOS命令:
    • ping: 后跟IP地址,测试本机与指定的IP地址间的通信是否有问题
    • ipconfig:查看本机IP地址
  • 域名:与IP地址一一对应

InetAddress类

InetAddress类的对象用于IP地址和域名

常用方法
  1. getByName(String s):获得一个InetAddress 类的对象,该对象中含有主机的IP地址

  2. getLocalHost():获得一个InetAddress对象,该对象含有本地机的域名和IP地址

  3. String getHostName():返回本地主机的主机名

  4. import java.net.InetAddress;
    import java.net.UnknownHostException;
    
    public class Demo {
    
        private void test() {
            try {
                InetAddress locAdd = InetAddress.getLocalHost(); //得到本地InetAddress对象
                InetAddress remAdd = InetAddress.getByName("www.baidu.com"); //获得远程InetAddress对象
    
                System.out.println("本机IP地址:" + locAdd.getHostAddress());
                System.out.println("百度IP地址:" + remAdd.getHostAddress());
                System.out.println("本机名" + locAdd.getHostName());
            } catch (UnknownHostException e) {
                e.printStackTrace();
            }
        }
    
        public static void main(String[] args) {
            Demo demo = new Demo();
            demo.test();
        }
    }
    
    

端口

端口表示计算机上的一个程序的进程

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

  • 定:0~65535

  • TCP协议、UDP协议:单个协议下,端口号不能冲突

  • 端口分类

    • 公有端口:0~1023(系统使用或保留端口)

    • 程序注册端口:1024~49151(分配用户或者程序)

      • Tomcat:8080 (默认)
      • MySQL:3306
      • Oracle:1521
    • 动态、私有端口:49152~65535

      #DOS命令
      netstat -ano #查看所有的端口
      netstat -ano|findstr "***" #查看指定的端口
      tasklist|findstr "***" #查看指定端口的进程
      
      

通信协议

协议:约定。

大事化小:分层。

TCP/IP协议族:实际是一族协议

重要:

  • TCP:用户传输协议
  • UDP:用户数据报协议

出名的协议:(TCP/IP)

  • TCP:用户传输协议
  • IP:网络互连协议
TCP/IP参考模型:

在这里插入图片描述

TCP UDP对比
  1. TCP
    • 连接稳定
    • 三次握手,四次挥手(连接三次,断开四次),可靠协议
    • 客户端与服务端
    • 传输完成,释放连接,效率低
  2. UDP:
    • 不连接,不稳定,不可靠协议
    • 客户端与服务端:没有明确的界限
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值