---------------------- android培训、java培训、期待与您交流! ----------------------
网络的三要素:
IP 端口 传输协议
传输协议:
UDP和TCP协议
TCP/IP协议
OSI模型和TCP/IP模型
IP地址对象:
InetAddress `
InetAddress ia=InetAddress.getLocalHost(); //创建地址对象
System.out.println(ia.getHostAddress);
System.out.println(i.toString());
UDP:
将数据及源和目的封装成数据包中,不需要建立连接。 每个数据大小限制在64K内。 因无连接是不可靠协议。 不需要建立连接,速度快。
UDP (send:发送数据)
//创建udp服务,通过DatagramSocket对象。
DatagramSocket ds=new DatagramSocket();
byte[] buf="heima liuqi wo lai le".getBytes();
DatagramPacket dp=new DatagramPacket(buf, buf.length, InetAddress.getByName("192.168.1.104"),10000);
ds.send(dp);
ds.close();
UDP(receive:接收数据)
DatagramSocket ds=new DatagramSocket(10000);
byte[] buf=new byte[1024];
DatagramPacket dp=new DatagramPacket(buf, buf.length);
ds.receive(dp);
//通过数据方法获取数据信息。
String ip=dp.getAddress().getHostAddress();
String data=new String(dp.getData(),0,dp.getLength());
System.out.println(ip+":"+data);
ds.close();
TCP:
建立连接,形成传输数据的通道。 在连接中进行大数据量传输。 通过三次握手完成连接,是可靠协议。 必须建立连接,效率会稍低。
tcp:分为客户端和服务端;
客户端的对象是Socket
服务端的对象是ServerSocket
Socket:客户端
Socket s=new Socket("192.168.1.101",10000);
OutputStream out=s.getOutputStream();
out.write("黑马六期我来了".getBytes());
s.close();
}
ServerSocket :服务端
ServerSocket ss=new ServerSocket(10000);
Socket s=ss.accept();
InputStream in=s.getInputStream();
byte[] buf=new byte[1024];
int len=in.read(buf);
System.out.println(new String(buf,0,len));
s.close();
}