首页编程java编程java中用什么表示ip java中UDP,DCP TCP与IP的区别是什么

java中用什么表示ip java中UDP,DCP TCP与IP的区别是什么

编程之家2023-10-1395次浏览

这篇文章给大家聊聊关于java中用什么表示ip,以及java中UDP,DCP TCP与IP的区别是什么对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

java中用什么表示ip java中UDP,DCP TCP与IP的区别是什么

java获得IP地址

下面有一篇文章,介绍若何读取物理网卡的地址,同样的

你可以用这个方法读取你所需要的本机IP地址

=======================================================

java中用什么表示ip java中UDP,DCP TCP与IP的区别是什么

J2SE5.0新特性之ProcessBuilder

这个例子使用了J2SE5.0的ProcessBuilder类执行外部的程序,相对于 Runtime.exec,它更方便,可以设置环境变量等。这里使用它在windows下读取物理网卡的地址

package com.kuaff.jdk5package;

java中用什么表示ip java中UDP,DCP TCP与IP的区别是什么

import java.io.IOException;

import java.io.InputStream;

import java.util.ArrayList;

import java.util.List;

public class ProcessBuilderShow

{

public static List getPhysicalAddress()

{

Process p= null;

//物理网卡列表

List address= new ArrayList();

try

{

//执行ipconfig/all命令

p= new ProcessBuilder("ipconfig","/all").start();

}

catch(IOException e)

{

return address;

}

byte[] b= new byte[1024];

StringBuffer sb= new StringBuffer();

//读取进程输出值

InputStream in= p.getInputStream();

try

{

while(in.read(b)>0)

{

sb.append(new String(b));

}

}

catch(IOException e1)

{

}

finally

{

try

{

in.close();

}

catch(IOException e2)

{

}

}

//以下分析输出值,得到物理网卡

String rtValue= sb.substring(0);

int i= rtValue.indexOf("Physical Address.........:");

while(i>0)

{

rtValue= rtValue.substring(i+"Physical Address.........:".length());

address.add(rtValue.substring(0,18));

i= rtValue.indexOf("Physical Address.........:");

}

return address;

}

public static void main(String[] args)

{

List address= ProcessBuilderShow.getPhysicalAddress();

for(String add:address)

{

System.out.printf("物理网卡地址:%s%n", add);

}

}

}

java中UDP,DCP TCP与IP的区别是什么

不知道楼主是什么意思,UDP,DCP TCP与IP都是传输协议吧,那和Java有什么关系呢?

1. IP

是网络层中最重要的协议。

IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。

高层的TCP和UDP服务在接收数据包时,通常假设包中的源地址是有效的。也可以这样说,IP地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来的。IP确认包含一个选项,叫作IP source routing,可以用来指定一条源地址和目的地址之间的直接路径。对于一些TCP和UDP的服务来说,使用了该选项的IP包好象是从路径上的最后一个系统传递过来的,而不是来自于它的真实地点。这个选项是为了测试而存在的,说明了它可以被用来欺骗系统来进行平常是被禁止的连接。那么,许多依靠IP源地址做确认的服务将产生问题并且会被非法入侵。

2. TCP

如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向‘上’传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。

TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。

面向连接的服务(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它们使用了TCP。DNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。

3.UDP

UDP与TCP位于同一层,但对于数据包的顺序错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询---应答的服务,例如NFS。相对于FTP或Telnet,这些服务需要交换的信息量较小。使用UDP的服务包括NTP(网落时间协议)和DNS(DNS也使用TCP)。

欺骗UDP包比欺骗TCP包更容易,因为UDP没有建立初始化连接(也可以称为握手)(因为在两个系统间没有虚电路),也就是说,与UDP相关的服务面临着更大的危险。

4.DCP?是不是写错了,应该是CDP吧!~

思科发现协议(CDP:Cisco Discovery Protocol)思科发现协议 CDP基本上是用来获取相邻设备的协议地址以及发现这些设备的平台。CDP也可为路由器的使用提供相关接口信息。CDP是一种独立媒体协议,运行在所有思科本身制造的设备上,包括路由器、网桥、接入服务器和交换机。需要注意的是,CDP是工作在 Layer 2的协议,默认情况下,每60秒以 01-00-0c-cc-cc-cc为目的地址发送一次组播通告,当达到180秒的holdtime上限后仍未获得邻居设备的通告时,将清除邻居设备信息。

如何在java中获取本地ip

很多朋友都想知道java如何获取本地ip?下面就一起来了解一下吧~

获取java本地ip一共有两种方法:1、inetAddress类;2、封装方法。

1、 inetAddress类

通过InetAddress的实例对象包含以数字形式保存的IP地址,同时还可能包含主机名(如果使用主机名来获取InetAddress的实例,或者使用数字来构造,并且启用了反向主机名解析的功能)。InetAddress类提供了将主机名解析为IP地址(或反之)的方法。其生成InetAddress对象的方法。

import java.net.Inet4Address; import java.net.InetAddress; import java.net.UnknownHostException; public class Main {    public static void main(String[] args) throws UnknownHostException {        //Inet4Address address= (Inet4Address) Inet4Address.getLocalHost();        InetAddress address = InetAddress.getLocalHost();        System.out.println(address);//获取计算机名称和ip地址        String hostAddress = address.getHostAddress();        System.out.println(hostAddress);//获取ip地址        String hostName = address.getHostName();        System.out.println(hostName);//获取计算机名称    }}

2、封装方法。

    public static String getLocalIp() {        Enumeration netInterfaces = null;        try {            netInterfaces = NetworkInterface.getNetworkInterfaces();            while (netInterfaces.hasMoreElements()) {                NetworkInterface nif = netInterfaces.nextElement();                Enumeration InetAddress = nif.getInetAddresses();                while (InetAddress.hasMoreElements()) {                    String ip = InetAddress.nextElement().getHostAddress();                    if (ip.startsWith("192.168")) {                        return ip;                    }                }            }        } catch (SocketException e) {        }        return "127.0.0.1";    }

OK,关于java中用什么表示ip和java中UDP,DCP TCP与IP的区别是什么的内容到此结束了,希望对大家有所帮助。

java为什么开发效率低(如何理解JAVA开发效率低)java se做什么 JavaSE是什么