网络编程

一、网络编程的基础知识

1、TCP/IP
TCP/IP不是一个协议,而是一个协议族的统称。里面包括了IP协议,IMCP协议,TCP协议,以及我们更加熟悉的http、ftp、pop3协议等等。
TCP/IP协议族按照层次由上到下,层层包装。最上面的就是应用层了,这里面有http,ftp,等等我们熟悉的协议。而第二层则是传输层,著名的TCP和UDP协议就在这个层次。第三层是网络层,IP协议就在这里,它负责对数据加上IP地址和其他的数据(后面会讲到)以确定传输的目标。第四层是叫数据链路层,这个层次为待传送的数据加入一个以太网协议头,并进行CRC编码,为最后的数据传输做准备。发送协议的主机从上自下将数据按照协议封装,而接收数据的主机则按照协议从得到的数据包解开,最后拿到需要的数据。这种结构非常有栈的味道,所以某些文章也把tcp/ip协议族称为tcp/ip协议栈。
2、IP地址和端口号

  • ip地址
    ip地址用于唯一地标识网络中的一个通信实体。
  • 端口是一个16位的整数,用于表示数据交给哪个通信程序处理。端口就是应用程序与外界交流的出入口。
二、java的基本网络支持

1、InetAddress类
它代表一个ip地址对象,是网络通信的基础。没有构造器,有两个静态方法来获取InetAddress对象。

  • getByName(String host):根据主机获取对象的InetAdress对象
  • getByAdress(byte[] addr):根据原始ip地址来获取对应的对象。
//根据主机名来获取对应的InetAdress对象
InetAdress.getByName("www.baiud.com");
//根据ip地址
InetAddress.getByAddress(new byte[]{127,0,0,1})

2、URLDecode与URLEncoder

  • URLDecode类包含一个decode(String s,String enc)静态方法,解码。
  • URLEncoder类包含一个encode(String s,String enc)静态方法,加码。

3、URL和URLConnection
URL对象代表统一资源定位器。可以由协议名、主机、端口和资源组成。

protocol://host:port/resourceName

URL对象可以获取资源名、主机名、路径部分、端口号、协议名称,可以通过getQurey获取查询字符串部分。通过openConnection获取URLConnection对象。openStream获取InputStream对象。

三、基于TCP协议的网络编程

1、定义

  • ip协议
    负责将一个消息从一个主机发送到另一个主机,消息在传送到过程中分成一个一个到小包。该协议只保证能发送和接受。
  • tcp协议
    端对端协议,建立一个链路,能够保证通信的可靠性。

2、使用socket
1)ServerSocket的使用

	//1、创建serversocket对象
	ServerSocket serverSocket = new ServerSocket(30000);
        while (true){
        	// 2、使用accept方法接受客服端的请求,创建与客户端对应的socket
        	// 一个tcp连接有两个socket
            Socket accept = serverSocket.accept();
        }

2)客户端socket端的使用

	// 建立与服务端对应的socket
        Socket socket = new Socket("127.0.0.1",3000);
四、基于UDP协议的网络编程

UDP是一种面向非连接的协议,属于传输层协议。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值