首页 > 代码库 > 网络编程三要素
网络编程三要素
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 = "http://www.mamicode.com/您好!!"; //创建数据包 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(); } }
网络编程三要素
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。