------- <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();
}
}