网络编程三要素
Posted hgfs瑞
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络编程三要素相关的知识,希望对你有一定的参考价值。
1、ip 端口号 协议
ip地址=网络号+主机号
端口号:用于表明消息给哪个程序处理的。其中0~1023是公认端口,1024~49151是注册端口。一共有0~65535个端口。
UDP协议:1、将数据封装为数据包,传输时不需要建立连接。
2、每个数据包的限制大小64K中
3、不可靠传输,传输速度快
TCP协议:(打电话、文件传输)
1、面向连接,有特有的通道
2、传输比较大的数据
3、三次握手机制建立连接,是可靠协议
4、通信前必须建立连接;效率低
2、网络通讯(Socket通讯)不同的协议,就有不同的Socket。
(1)udp中的广播地址:就是主机号为255的ip地址。当以此地址广播时,在同一个网段的机器都可以接受到消息。
(2)每个网络程序都有自己处理的特定格式的数据,当接受到数据后,先判断数据的格式,如果不是本程序特定的格式,则丢弃数据。
3、模拟:发送,接受数据
(1)发送端
package cd.itcast.xieyi; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; import java.net.UnknownHostException; /* * udp协议下的Socket * DatagramSocket(udp插座服务) * DatagramPacket(数据包类) * *发送端 * DatagramPacket(buf, length, address, port) * buf 发送的数据内容 * length 发送数据内容的大小(字节) * address 发送的目的IP地址对象 * port 端口号 */ public class Demo1 { public static void main(String[] args) throws IOException { //建立udp的服务 DatagramSocket datagramSocket = new DatagramSocket(); //准备数据, String data = "您好!!"; //创建数据包 DatagramPacket datagramPacket = new DatagramPacket(data.getBytes(), data.getBytes().length, InetAddress.getLocalHost(), 9090); datagramSocket.send(datagramPacket); //关闭资源-----释放端口号 datagramSocket.close(); } }
(2)接受端
package cd.itcast.xieyi; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketException; public class Demo1Recive { public static void main(String[] args) throws IOException { //建立udp服务,并监听端口 DatagramSocket datagramSocket = new DatagramSocket(9090); //准备空的数据包,接受数据 byte[] buf = new byte[1024]; DatagramPacket packet = new DatagramPacket(buf, buf.length); //调用udp服务接受数据 datagramSocket.receive(packet); System.out.println("接受到的数据是:"+new String(buf,0,packet.getLength())); //关闭资源 datagramSocket.close(); } }
以上是关于网络编程三要素的主要内容,如果未能解决你的问题,请参考以下文章