黑马程序员-网络编程

 ---------------------- android培训,java培训、期待与您交流! ----------------------

网络编程:

网络编程简单的说就是进行网络间的数据传输 .

网络通讯要素:

1.       IP地址 : 每一台电脑对应的地址标识,是找到某台电脑的标识 .

2.       端口号 : 电脑中应用程序的标识,要把数据发送到电脑中的哪个应用程序中,就是通过端口号来确认.

3.       传输协议 : 要进行网络传输,就必须协商一个通信规则,这个通信规则称之为协议,只有使用同一种协议,才能进行网络传输 .

 

获取IP地址:

InetAddress类没有构造函数,所以不能创建对象,

static InetAddress[]

getAllByName(String host) 大型网站通常拥有多台主机,用这个方法可以获得多台主机的InetAddress对象
    在给定主机名的情况下,根据系统上配置的名称服务返回其 IP 地址所组成的数组。   

static InetAddress

getByName(String host)
          在给定主机名的情况下确定主机的 IP 地址。

 String

getHostName()
          获取此 IP 地址的主机名。

 String

getHostAddress()
          返回 IP 地址字符串(以文本表现形式)。

 

端口号:

用于标识进程的逻辑地址,有效端口:0—65535,其中0—1024是系统使用端口或者保留端口

 

传输协议:TCPUDP

      UDP:

1.       将数据及源和目的封装成数据包中,不需要建立连接

2.       每个数据包的大小在限制在64k之内

3.       因无连接,是不可靠协议

4.       不需要建立连接,速度快

 

TCP:

1.       建立连接,形成传输数据的通道

2.       在连接中进行大数据量传输

3.       通过三次握手完成连接,是可靠协议

4.       必须建立连接,效率低

 

 

Socket:

       Socket就是为网络服务提供的一种机制

       通信的两端都有Socket

       网络通信其实就是Socket间的通信

       数据在两个Socket键通过IO传输

 

 

Udp数据发送方式:

思路:

1,建立updsocket服务。

2,提供数据,并将数据封装到数据包中。

3,通过socket服务的发送功能,将数据包发出去。

4,关闭资源。

 

DatagramSocket  ds=new DatagramSocket();   //创建socket连接(邮局)

byte [] b="wo shi qin chao".getBytes();

DatagramPacket dp=new                     //数据封包(邮件封装)

DatagramPacket(b,b.length,InetAddress.getByName("www.baidu.com"),120);

ds.send(dp);                              //发送数据

ds.close();                               //关闭资源

 

 

udp的接收方式。

思路:

1,定义udpsocket服务。通常会监听一个端口。其实就是给这个接收网络应用程序定义数字标识。

    方便于明确哪些数据过来该应用程序可以处理。

 

2,定义一个数据包,因为要存储接收到的字节数据。因为数据包对象中有更多功能可以提取字节数据中的不同数据信息。

3,通过socket服务的receive方法将收到的数据存入已定义好的数据包中。

4,通过数据包对象的特有功能。将这些不同的数据取出

5,关闭资源。

 

DatagramSocket ds = new DatagramSocket(120);                    //创建服务,指定端口

Byte [] byte =new byte [1024] ;                                      

DatagramPacket dp = DatagramPacket(byte);                    //定义数据包 

ds . receive(dp);                                                             //发送数据到数据包

String data=new String(dp.getData() , 0 , dp.length());              //用数据包的getData方法得到数据

 

 

TCP传输:

Socket (客户端)ServerSocket(服务器端)

       建立客户端和服务器端

       建立传输后,通过Socket中的IO流进行数据传输

       关闭socket

 

客户端和服务器端都是两个独立运行的应用程序

 

客户端,

在该对象建立时,就可以去连接指定主机。

因为tcp是面向连接的。所以在建立socket服务时,

就要有服务端存在,并连接成功。形成通路后,在该通道进行数据的传输。

 

服务端:

1,建立服务端的socket服务。ServerSocket();

       并监听一个端口。

2,获取连接过来的客户端对象。

       通过ServerSokcet accept方法。没有连接就会等,所以这个方法阻塞式的。

3,客户端如果发过来数据,那么服务端要使用对应的客户端对象,并获取到该客户端对象的读取流来读取发过来的数据。

       并打印在控制台。

4,关闭服务端。(可选)

 

 

域名解析:

当我们访问网站的时候通常是输入域名,而不是输入IP地址,这么一来,本机就会把域名发送一个请求给公网服务器(DNS),请求公网服务器解析这个域名,得到这个域名的IP地址,然后本机再使用这个IP地址去访问网站

 

如果在本地设置了这个网站的对应域名,就可以跳过公网,直接访问目的网站,但是这样访问的网站无法更新.

如何做到?

       C:\WINDOWS\system32\drivers\etc这个地址下有一个hosts文件,里面有一些本地IP对应的网站,这个地址可以对应多个网站,只要把网站域名对应到这个IP地址,就可以直接访问了,因为访问网站是先找本地有没有对应,如果有,就直接访问,如果没有,才去找公网,由公网提供IP地址来访问.

 

 

这样做的好处:

1.         一些要收费的软件会定期自动访问官网更新,如果你的注册码过期,那么它访问官网后,就会禁止使用了,这时可以把它的官网的域名对应到本机,这样它就无法更新了.

2.         可以把一些恶意网站的域名对应到本地,这样就不会连接到外网,就不会接收到恶意网站的病毒

 

 

 

 

---------------------- android培训,java培训、期待与您交流! ----------------------

详细请查看
http://edu.csdn.net/heima

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值