《03第三讲 Socket编程.ppt》由会员分享,可在线阅读,更多相关《03第三讲 Socket编程.ppt(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、仰恩大学计算机与信息学院第第3讲讲 Socket编程概述编程概述仰恩大学计算机与信息学院教学目标教学目标:了解网络通信的基本原理与应用开发掌握Socket类与ServerSocket类的应用教学重点、难点:教学重点、难点:1.教学重点:网络通信原理客户机/服务器(C/S)模式的原理URL与URLConnection的区别Socket类与ServerSocket类的应用2.教学难点:Socket类与ServerSocket类的应用仰恩大学计算机与信息学院3.1 网络通信的原理网络通信的原理计算机之间的通信是要遵循一定规则的,通信协议就是计算机之间进行通信所要遵循的各种规则的集合。网络中的不同计算
2、机之间要实现准确、迅速地传递信息,可以通过TCP/IP协议建立网络上的两台计算机(程序)之间的可靠连接,并进行双向通信。仰恩大学计算机与信息学院(1)常见的几种通信协议IP协议在Internet网络通信中主要使用的协议有使用于网络层网络层的IP协议(IP协议使用IP地址使数据投递到正确的计算机上);TCP、UDP协议适用于传输层传输层的TCP、UDP(TCP和UDP协议使用端口号PORT将数据投递到正确的应用程序)协议;仰恩大学计算机与信息学院HTTP、FTP、SMTP、NNTP协议 适用于应用层应用层的HTTP、FTP、SMTP、NNTP(主要用于解释数据内容)协议等。例如Java语言中的套
3、接字(Socket)编程就是网络通信协议的一种应用,Java语言将TCP/IP协议封装到J包的Socket和ServerSocket类中。仰恩大学计算机与信息学院(2)IP地址网络中的每台计算机都必须有一个唯一的IP地址作为标识,这个数通常写作一组由“.”号分隔的十进制数,例如,思维论坛的服务器地址为218.5.77.187。正如所见IP地址均由4个部分组成,每个部分的范围都是0255,以表示8位地址。(3)端口号端口号则是一个数字,其值一般在165535之间,其中11023一般保留用在知名的端口号或特定的UNIX服务,临时使用的端口号可取102465535之间的整数。端口号可以区分一台服务器
4、上同时运行的不同种的服务程序。仰恩大学计算机与信息学院常见的一些internet服务对应的端口号如下所示:Internet 服务服务端口号Internet服务端口号FTP21WWW80TELNET23NNTP119DNS53POP3110(备注:NNTP-网络新闻传输协议)仰恩大学计算机与信息学院(4)InetAddress类在包中,IP地址由一个称为InetAddress的特殊的类来描述。这个类提供了3个用来获得一个InetAddress类的实例的静态方法。getLocalHost()/返回一个本地主机的IP地址getByName(Stringhost)/返回对应于指定主机的IP地址getA
5、llByName(Stringhost)/对于某个主机有多个IP地址可用于得到一个IP地址数组。仰恩大学计算机与信息学院例:获取本机的IP地址。.*;publicclassgetLocalHostTestpublicstaticvoidmain(Stringargs)InetAddressmyIP=null;trymyIP=InetAddress.getLocalHost();/myIP=InetAddress.getByName(“”);/根据域名自动到DNS上查找IP地址catchUnknowHostExceptione)System.out.println(myIP);注意:创建Inet
6、Address类不用构造函数(不用new运算符),而是通过InetAddress类直接调用其静态方法来获取IP地址。仰恩大学计算机与信息学院 3.2 URL类(1)URL(UniformResourceLocator统一资源定位器),是三大网络功能中最高级的一种,通过URLJava程序可以直接读入网络上的数据。URL的结构分为传输协议名和资源名称两部分,中间用“:/”分隔开。在Internet上表示URL的典型传输协议有http、ftp、gopher和news等几种形式,例如:“http:/”和“ftp:/ 端信息端信息向用户发出一个字符串向用户发出一个字符串创建创建Socket实例实例定义数
7、据成员定义数据成员建立建立socket流流读读socket流流(接收并显示接收并显示)送用户名给送用户名给服务器服务器关闭流关闭流waiting for user127.0.0.1 11111111login:connetcting client.java提示用户登录成功提示用户登录成功读读socket流流User:javaLogin successful仰恩大学计算机与信息学院(4)Socket类的示示例:程序的功能是客户机先向服务器发送一个字符串“你好!我是客户端,向你请求连接”,服务器发现客户机发的请求连接信息,则回应“你好!我是服务器,连接成功”。客户输入三角形三边的长度并发送给服务器
8、,服务器把计算出的三角形面积返回给客户。思路分析:套接字连接中涉及到输入流和输出流操作,为了不影响我们做其他的事情,应把套接字连接放在一个单独的线程中去进行.另外,服务器端收到一个客户的套接字后,就应该启动一个专门为客户服务的线程.可以把计算量大的工作放在服务器端,客户负责计算量小的工作,实现客户/服务器交互计算,来完成此项任务.仰恩大学计算机与信息学院教学总结:教学总结:1.实现网络功能靠URL类,URLConection类,Socket类和DatagramSocket类。2.Socket适用于面向连接的,可靠性要求高的应用,Datagram(数据报)适用于效率要求高的应用,但无法保证可靠性。3.网络上的数据传送是将网络连接转换成输入输出流,DataInputStream和DataOutputStream(PrintStream)是网间流的载体.