Socket网络编程.ppt
《Socket网络编程.ppt》由会员分享,可在线阅读,更多相关《Socket网络编程.ppt(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第17章 Socket网络编程第第17章章 Socket网络编程网络编程17.1 网络基础网络基础 17.2 URL17.3 Socket编程编程17.4 NIO非阻塞式网络编程非阻塞式网络编程第17章 Socket网络编程17.1 网络基础网络基础 n 计算机网络计算机网络 把分布在不同地理区域的计算机与专门的外部设备把分布在不同地理区域的计算机与专门的外部设备用通信线路连接成一个规模大、功能强的网络系统,用通信线路连接成一个规模大、功能强的网络系统,而使计算机可以方便的传递信息,共享硬件、软件、而使计算机可以方便的传递信息,共享硬件、软件、数据信息等资源,称为计算机网络。数据信息等资源,称
2、为计算机网络。第17章 Socket网络编程17.1 网络基础网络基础 网络分类:网络分类:n 规模和范围:局域网,城域网和广域网规模和范围:局域网,城域网和广域网n 网络拓扑结构:星型、总线、环线等网络拓扑结构:星型、总线、环线等n 传输介质:双绞线,同轴电缆和光纤等传输介质:双绞线,同轴电缆和光纤等第17章 Socket网络编程17.1 网络基础网络基础 网络工作模式:网络工作模式:n 客户机客户机/服务器模式服务器模式(client/server)n 浏览器浏览器/服务器模式服务器模式(browser/server)n 对等式网络:(对等式网络:(Peer-to-Peer)n 专用服务器
3、结构专用服务器结构(Server-Based)第17章 Socket网络编程17.1 网络基础网络基础 n 网络通信协议网络通信协议 计算机想在网络间进行通信必须遵循一定的标准。计算机想在网络间进行通信必须遵循一定的标准。如对数据传输速率的限制,传输数据格式的限制,出如对数据传输速率的限制,传输数据格式的限制,出错控制等等。这些标准往往以协议的形式出现。错控制等等。这些标准往往以协议的形式出现。第17章 Socket网络编程17.1 网络基础网络基础 主要的网络协议:主要的网络协议:n NetBEUI:短小精悍、通信效率高的广播型协议短小精悍、通信效率高的广播型协议 n IPX/SPX:多用在
4、联机游戏中多用在联机游戏中n TCP/IP:传输控制协议传输控制协议/互联网协议互联网协议还有还有HTTP,FTP,SMTP,UDP和和POP3/IMAP等等协议协议第17章 Socket网络编程17.1 网络基础网络基础 TCP/IP协议:协议:是是Internet上不同系统之间互联的一组协议。它为上不同系统之间互联的一组协议。它为分散和不同类型的硬件提供了一个通用的编程接口。分散和不同类型的硬件提供了一个通用的编程接口。TCP/IP 协议使协议使Internet尽可能成为一个分散、无序的尽可能成为一个分散、无序的网络。网络。TCP协议,是面向连接的可靠的数据传输协议。协议,是面向连接的可靠
5、的数据传输协议。IP协议支持网络间连接的数据报通信。一般将协议支持网络间连接的数据报通信。一般将TCP/IP协协议结合使用。议结合使用。第17章 Socket网络编程17.1 网络基础网络基础 n IP地址、域名和端口地址、域名和端口 IP地址:地址:为了实现为了实现Internet上不同计算机之间的通信,每台计上不同计算机之间的通信,每台计算机都必须有一个不与其它计算机重复的地址算机都必须有一个不与其它计算机重复的地址-IP地地址。址。IP地址是数字型的,地址是数字型的,32位位(32bit),由,由4个个 8位的二位的二进制数组成,每进制数组成,每8位之间用圆点隔开,如位之间用圆点隔开,如
6、192.168.6.101。第17章 Socket网络编程17.1 网络基础网络基础 域名域名:IP地址应数字太多难以记忆,实际应用中人们常采地址应数字太多难以记忆,实际应用中人们常采用另一种字符表示的地址,即域名来查找主机。如用另一种字符表示的地址,即域名来查找主机。如“”,域名相对来说比较容易记忆,但却不,域名相对来说比较容易记忆,但却不能直接用于网络主机的查找,域名只能被域名服务器能直接用于网络主机的查找,域名只能被域名服务器解析转化为解析转化为IP地址后才能起到作用。地址后才能起到作用。第17章 Socket网络编程17.1 网络基础网络基础 端口端口:端口是计算机与外界交流的出入口。
7、端口可以理解端口是计算机与外界交流的出入口。端口可以理解为是计算机连接网络的逻辑接口为是计算机连接网络的逻辑接口,不是真正的物理意义不是真正的物理意义上的端口,是一个逻辑的概念。上的端口,是一个逻辑的概念。通过端口应用机制才可使一台计算机可能提供多种通过端口应用机制才可使一台计算机可能提供多种服务,共享一条物理通道。服务,共享一条物理通道。第17章 Socket网络编程17.1 网络基础网络基础 端口端口:一个计算机系统能提供的端口号的取值范围从一个计算机系统能提供的端口号的取值范围从0到到65535,其中,从,其中,从0到到1023个这个这1024个端口是一些公用个端口是一些公用服务的端口,
8、一般称为公认端口,比如服务的端口,一般称为公认端口,比如ftp服务的默认服务的默认端口是端口是21,http服务的默认端口是服务的默认端口是80。第17章 Socket网络编程【例题【例题17-1】获取获取IP地址演示地址演示 public class InetAddressDemo public static void main(String args)throws UnknownHostException InetAddress ia;ia=InetAddress.getLocalHost();System.out.println(ia.getHostName();System.out.p
9、rintln(ia.getHostAddress();ia=InetAddress.getByName();System.out.println(ia.getHostName();System.out.println(ia.getHostAddress();17.1 网络基础网络基础第17章 Socket网络编程【例题【例题17-1】获取获取IP地址演示地址演示 程序运行结果:程序运行结果:175.174.63.43第17章 Socket网络编程17.2 URL URL(Uniform Resource Locators,统一资源定位,统一资源定位器)是一种用来进行资源定位的工具。器)是一种用
10、来进行资源定位的工具。URL值是使用值是使用数字和字母的排列来表示网络中的某一资源(文件、数字和字母的排列来表示网络中的某一资源(文件、目录、对对象的引用)的地址。目录、对对象的引用)的地址。URL的基本结构:的基本结构:/主机名:端口号主机名:端口号/文文件名件名#引用引用 如:如:http:/ Socket网络编程17.2 URL URL类位于类位于包中,表示包中,表示URL地址。地址。构造方法:构造方法:URL(addr);常用方法:常用方法:ngetProtocol():返回:返回URL中的协议名称中的协议名称ngetHost():返回:返回URL中的主机名。中的主机名。ngetPor
11、t():返回:返回URL中的端口号。如果中的端口号。如果URL中没中没有设定端口号,该函数返回有设定端口号,该函数返回-1。第17章 Socket网络编程【例题【例题17-2】URL演示演示 public class URLDemo public static void main(String args)try URL url=new URL(http:/);System.out.println(the protocol:+url.getProtocol();System.out.println(the hostname:+url.getHost();System.out.println(th
12、e port:+url.getPort();catch(MalformedURLException e)System.out.println(e);17.1 网络基础网络基础第17章 Socket网络编程【例题【例题17-2】URL演示演示 程序运行结果:程序运行结果:the protocol:httpthe hostname:the port:-1第17章 Socket网络编程17.3 Socket编程编程 Socket 套接字用于在主机和套接字用于在主机和Internet之间建立可靠之间建立可靠的、双向的、持续的、点对点的流式连接。一个套接的、双向的、持续的、点对点的流式连接。一个套接字可
13、以用来建立字可以用来建立Java 的输入的输入/输出系统到其他的驻留在输出系统到其他的驻留在本地机或本地机或Internet上的任何机器的程序的连接。上的任何机器的程序的连接。应用程序通过应用程序通过Socket向网络发出请求或者应答网络向网络发出请求或者应答网络请求,请求,Socket隐藏了数据流传输中的复杂性。隐藏了数据流传输中的复杂性。第17章 Socket网络编程17.3 Socket编程编程 ServerSocket/Socket两个类用于建立一来自客户端两个类用于建立一来自客户端的连接,而且是双边的通信。的连接,而且是双边的通信。ServerSocket等待等待Socket 连接到
14、一个服务器端。连接到一个服务器端。第17章 Socket网络编程Server端ServerSocket(port#)s.accept()/等待连接SocketOutputStreamInputStremsocket.close()Client端Socket(host,port#)(试图连接)OutputStreamInputStreamsocket.close()Socket通信模型通信模型第17章 Socket网络编程17.3 Socket编程编程 ServerSocket类用来创建服务器,服务器监听本地或类用来创建服务器,服务器监听本地或远程客户程序通过公共端口的连接。远程客户程序通过公共
15、端口的连接。构造方法:构造方法:n ServerSocket(int port)在指定端口创建队列长度在指定端口创建队列长度为为50的服务器套接字。的服务器套接字。n ServerSocket(int port,int maxQueue)在指定端在指定端口创建一个最大队列长度为口创建一个最大队列长度为maxQueue的服务器套的服务器套接字。接字。第17章 Socket网络编程17.3 Socket编程编程 常用方法:常用方法:n Socket accept():用于接收一个客户机的连接。:用于接收一个客户机的连接。如果有客户机连接到它所创建的监听端口时,返回如果有客户机连接到它所创建的监听端
16、口时,返回一个一个Socket实例,否则,等待下去。实例,否则,等待下去。n close():关闭连接。:关闭连接。第17章 Socket网络编程17.3 Socket编程编程 Socket类用于创建类用于创建Socket对象对象。构造方法:构造方法:n Socket():通过系统默认类型创建未连接套接字通过系统默认类型创建未连接套接字 n Socket(InetAddress address,int port):创建一创建一个流套接字并将其连接到指定个流套接字并将其连接到指定 IP 地址的指定端口地址的指定端口 n Socket(String host,int port):创建一个流套接创建
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Socket 网络 编程
限制150内