黑马程序员-----网络通信(第七篇)

-----------android培训java培训、java学习型技术博客、期待与您交流!------------ 

1.网络通信三要素:IP地址,端口号,传输协议

AIP地址

        a、它是网络中的设备标识

        b、不易记忆,可用主机名表示,两者存在映射关系

              注意:如果IP地址和对应的主机名,这种映射关系没有在网络上,就不会解析成功,返回的还是指定的IP

B、端口号:

        a、用于标识进程的逻辑地址,不用进程的标识。

        b、有效端口:0 ~65535,系统使用或保留的端口是:0~ 1024

C、传输协议:

        即通信规则,包含TCPUDP协议

2、Socket

        1、它被称之为插座,相当于港口一样,是网络服务提供的一种机制。

        2、通信两端都要有Socket,才能建立服务。

        3、网络通信其实就是Socket间的通信,数据在两个Socket间通过IO传输。

 

3.UDPTCP的区别

UDP

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

每个数据报的大小在限制在64k内,因无连接,是不可靠协议,不需要建立连接,速度快

TCP

建立连接,形成传输数据的通道。在连接中进行大数据量传输

通过三次握手完成连接,是可靠协议。必须建立连接,效率会稍低。

 

4.如下udp通信的例子

import java.net.*; 
思路:1建立updsocket服务;2提供数据,并将数据封装到数据包中。
3通过socket服务的发送功能,4关闭资源
class  UdpSend
{ 
 	   public static void main(String[] args) throws Exception 
            {
	    DatagramSocket ds = new DatagramSocket(12);//创建udp
	    DatagramPacket(byte[] buf, int length, InetAddress address, int port)
	    byte[] buf = "udp ge men lai le ".getBytes();
	    DatagramPacket dp =new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.114"),10000);
 	    ds.send(dp);
 	    ds.close(); 
	  }
}
udp接收点:
class  UdpRece  
{
      public static void main(String[] args) throws Exception
      {  
	创建udp socket,建立端点。  
          DatagramSocket ds = new DatagramSocket(10000);
	while(true)          
	{   
	//2,定义数据用于存储数据。        
  	byte[] buf = new byte[1024];       
  	DatagramPacket dp = new DatagramPacket(buf,buf.length);  
         //3,通过服务的receive方法将收到数据存入数据包中。  
       		ds.receive(dp); 
	String ip = dp.getAddress().getHostAddress();
	String data = new String(dp.getData(),0,dp.getLength());  
	int port = dp.getPort();
 	System.out.println(ip+"::"+data+"::"+port); 
     }
}

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值