天天看点

黑马程序员------网络编程

------- <a href="http://www.itheima.com" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="blank">android培训</a>、<a href="http://www.itheima.com" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="blank">java培训</a>、期待与您交流! ----------

1、找到对方 IP

2、数据要发送到对方指定的应用程序上,为了标识这些应用程序,所以给这些

网络应用程序都用数字进行标识,为了方便程序这个数字,叫做端口(逻辑端口)

3、定义通信规则,这个通讯规则称之为协议,国际组织定义了通用协议TCP/IP

UDP

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

2、每个数据包的大小限制在65K内

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

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

TCP

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

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

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

4、必须建立连接,效率会稍低

import java.net.*;

class IPDemo

{

public static void main(String[] args)throws Exception

{

InetAddress[] i = InetAddress.getAllByName("www.baidu.com");

System.out.println(i.getHostAddress());

}

}

*/

import java.net.*;

class Udpsend

{

public static void main(String[] args)throws Exception

{

//1、创建udp服务,通过DatagramSocket对象

DatagramSocket data=new DatagramSocket(10001);//定义端口为10001

//2、确定数据,并封装成数据包

byte[] buf="udp ge shi chuan shuo".getBytes();

DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.0.100"),10000);

//3、通过socket服务,将已有的数据包发送出去,通过send方法

data.send(dp);

//4、关闭资源

data.close();

}

}

class Udprece

{

public static void main(String[] args) throws Exception

{

//1、创建udpsocket服务,建立断点

DatagramSocket ds=new DatagramSocket(10000);//定义端口为10000

//2、定义数据包,用于存储数据

byte[] buf = new byte[1024];

DatagramPacket dp=new DatagramPacket(buf,buf.length);

//3、通过服务的receive方法将收到的数据存入数据包中

ds.receive(dp);

//4、通过数据包的方法获取其中数据

String ip=dp.getAddress().getHostAddress();

String data=new String(dp.getData(),0,dp.getLength());//封装成字符串对象,并且得到接收数据的长度

int port=dp.getPort();//得到端口

System.out.println(ip+"......"+data+"...."+port);

//5、关闭资源

ds.close();

}

}