文档详情

Java Socket编程笔记.doc

发布:2017-06-18约3.84千字共4页下载文档
文本预览下载声明
简介 数据从一台主机传输到另一台主机的经过: TCP协议和UDP协议使用端口号作为地址,端口号用来区分同一主机中不同应用程序。TCP和UDP也被成为端到端传输协议end-to-end transport protocol,它将数据从一个应用程序传输到另一个应用程序,而IP协议只是将数据从一个主机传输到另一个主机。 互联网地址由二进制数字组成,IPV4地址长32位,大约40亿个独立地址,IPV6是128位的。 Socket(套接字)是一种抽象层,应用程序通过它来发送和接收数据,像应用程序打开一个文件句柄,将数据读写到文档的存储器上一样。使用socket可以将应用程序添加到网络中,并与处于同一个网络中的其他应用程序进行通信。 TCP/IP协议族中socket类型为流套接字(stream socket,TCP协议使用)和数据包套接字(datagram socket,UDP协议使用)。 基本知识 Socket地址 Readiness类代表了一个网络目标地址,有两个子类,Inet4Address和Inet6Address,分别对应IPV4地址和IPV6地址。 下面例子中,首先打印出于本地主机关联的所有IP地址,包括IPV4和IPV6,然后对于每个在命令行中指定的主机,打印出相关的主机名和地址。 try { //返回包含了该主机每个接口所对应的NetworkInterface实例的列表 EnumerationNetworkInterface interfaceList = NetworkInterface .getNetworkInterfaces(); if (interfaceList == null) { System.out.println(--No interfaces found--); } else { while (interfaceList.hasMoreElements()) { NetworkInterface iface = interfaceList.nextElement(); System.out.println(Interface + iface.getName() + :); //获取该接口下所有InetAddress实例 EnumerationInetAddress addrList = iface.getInetAddresses(); if (!addrList.hasMoreElements()) { System.out.println(\t(No addresses for this interface)); } while (addrList.hasMoreElements()) { InetAddress address = addrList.nextElement(); System.out.print(\tAddress + ((address instanceof Inet4Address ? (v4) : (address instanceof Inet6Address ? (v6) : (?))))); System.out.println(: + address.getHostAddress()); } } } } catch (SocketException se) { System.out.println(Error getting network interfaces: + se.getMessage()); } String host = ; try { System.out.println(host + :); InetAddress[] addressList = InetAddress.getAllByName(host); for (InetAddress address : addressList) { //获取主机名和主机ip地址 System.out.println(\t + address.getHostName() + / + address.getHostAddress()); } } catch (UnknownHostException e) { System.out.println(\tUnable to find address for + host); } } 运行
显示全部
相似文档