欢迎来到天天文库
浏览记录
ID:59134791
大小:123.00 KB
页数:15页
时间:2020-09-12
《网络编程(接口socket).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、使用Java语言还可以编写底层的网络通信程序,这是通过java.net包中提供的Socket类以及ServerSocket等类实现的。本章讨论如何通过socket使用TCP/IP或UDP协议实现在网络上两个程序间建立连接并交换数据。Java套接字编程机器标识连接到Internet上的计算机使用IP地址或域名来唯一标识一台计算机,在局域网上的计算机则可以使用名称标识。要实现网络通信,首先需要知道计算机的地址。在java.net包中提供了InetAddress类对象来表示计算机地址。InetAddress类没有提供构造方法,要得到一个InetAddress类对象
2、,需要使用该类的静态方法。·publicstaticInetAddressgetByName(Stringhost)返回给定主机名或点分十进制表示的主机的IP地址。·publicstaticInetAddress[]getAllByName(Stringhost)返回给定主机名或点分十进制表示的主机的所有IP地址数组。·publicstaticInetAddressgetLocalHost()返回本地主机的IP地址。上述方法在指定的主机未知时将抛出UnknownHostException异常。InetAddress类其他方法:·publicStringget
3、HostName()返回该IP地址的主机名字符串。·publicStringgetHostAddress()返回主机IP地址的字符串。·publicbyte[]getAddress()返回四个元素的表示IP地址的字节数组。下面程序通过命令行给出一台主机的域名,程序将输出该机器的网络地址。程序GetIPAddress.javaimportjava.net.*;publicclassGetIPAddress{publicstaticvoidmain(Stringargs[])throwsException{if(args.length!=1){System.ou
4、t.println("Usage:GetIPAddressDomainName");System.exit(1);}InetAddressaddress=InetAddress.getByName(args[0]);System.out.println(address);System.out.println("Name:"+address.getHostName());System.out.println("Address:"+address.getHostAddress());}}______________________________________
5、_______________________________________▃要运行该程序,机器必须连到网络上。下面是程序运行的一个结果:图GetIPAddress程序的运行结果套接字通信在网络上,很多应用都是采用客户/服务器(C/S)结构的。实现网络通信必须将两台机器连接起来建立一个双向通信链路,这个双向通信链路的每一端称为一个套接字(socket)。1.套接字的构成我们知道,在Internet上可以使用IP地址唯一标识一台主机。但一台主机可能提供多种服务,而仅用IP地址还不能唯一标识一个服务。因此通常使用一个整数来标识该机器上的某个服务,这个整数就是端
6、口号(port)。端口号是用16位整数标识,共有65536个端口号。端口号并不是机器上实际存在的物理位置,而是一种软件上的抽象。端口号分为两类。一类是由因特网名字和号码指派公司ICANN分配给一些常用的应用层程序固定使用的熟知端口(well-knownport),其数值为1~1024。例如HTTP服务的端口号为80,FTP服务的端口号为21。表1列出了几种常用的熟知端口号。表1常用服务的端口号服务FTPTelnetSMTPDNSHTTPSNMP端口号2123255380161另一类端口为一般端口,用来随时分配给请求通信的客户进程。为了在通信时不致发生混乱,就
7、必须把端口号和主机的IP地址结合在一起使用。一个TCP连接由它的两个端点来标识,而每一个端点又是由IP地址和端口号决定的。TCP连接的端点称为套接字(socket),套接字是由IP地址和端口号构成的,如图2所示:131.6.23.131500131.6.23.13,1500IP地址端口号套接字图2套接字的构成这里,131.6.23.13为IP地址,1500为端口号,因此套接字为131.6.23.13,1500。2.套接字通信与套接字类一般来说,运行在一台特定机器上的某个服务器(如HTTP服务器)都有一个套接字绑定到该服务器上。服务器只是等待、监听客户的连接请
8、求。在客户端,客户机需要知道运行服务器的主机名和端口
此文档下载收益归作者所有