欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > PPT文档下载
    分享到微信 分享到微博 分享到QQ空间

    第9章Socket编程.ppt

    • 资源ID:388679       资源大小:164KB        全文页数:33页
    • 资源格式: PPT        下载积分:2000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要2000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第9章Socket编程.ppt

    1、第9章Socket编程,本章提要 客户/服务器模型 Java编写客户应用程序 Java编写服务器应用程序,本章知识要点,客户/服务器模型 TCP/IP协议族 套接字(Socket) Java编写客户应用程序 Java编写服务器应用程序,9.1 客户/服务器模型,客户/服务器模型,客户/服务器模型的主要思想是要将应用程序的数据表示与数据处理和数据存储分开。 客户方主要是向服务器发出数据处理请求。 服务器方则是对数据处理请求进行接收,然后做出相应处理。,TCP/IP协议族,国际标准化组织(ISO)制订了开放系统互连(Open Systems Interconnection)参考模型,OSI参考模型

    2、,协议 协议就是约定,就是双方为了协调地做一件事情而共同遵循的规则。,TCP/IP协议族,套接字(Socket),套接字包含主机地址与服务端口号。 在Internet中,主机地址就是客户程序或服务器程序所在的主机的IP地址。 端口与则是主机彼此通信时所有的通口,客户/服务器通信模式,著名端口所对应的应用,Socket 类 Socket是支持TCP协议的基本类。 Socket类提供了一些进行流输入/输出的方法。 ServerSocket类 ServerSocket是一个用于监听客户请求的Internet服务器程序的类。 作为服务器方程序必须使用ServerSocket类。 ServerSocke

    3、t实际上并不执行数据通信工作,它仅仅接收客户请求,然后为客户创建一个相对应的Socket对象。,9.2 创建服务器应用程序,案例用户注册模块之服务器端,提出问题我们要开发用户注册模块中的服务器端应用,以实现远程用户通过Applet将信息保存到中心数据中。服务器程序需要用Java来开发,以下是服务器功能:(1)服务器应能够接收远程客户机上发来的用户资料。(2)服务器应能够将用户资料保存在customer.dat文件中。(3)服务器是多线程的,能够同时满足多个客户机的访问。(4)服务器在端口2001上运行。,分析问题 确定创建服务器所要使用的类 创建服务器 确定监听机制 确定数据通信机制,设计模型

    4、图,解决问题 1.创建服务器所要使用的类 2.创建服务器类 3.确定监听机制 4.确定数据通信机制 5.完成服务器程序 6.验证程序,创建服务器所要使用的类,ServerSocket类,通信过程,ServerSocket类中提供的方法列表,accept()方法 accept()方法是阻塞方式,当有连接请求过来时才执行返回。 它将创建一个新的套接字与客户套接字建立通信。 当有很多请求发往服务器时,服务器套接字(ServerSocket)将创建多个新的套接字与不同的客户进行通信。,创建服务器类,class MyServer extends Thread public MyServer()try/创

    5、建ServerSocket对象,监听端口为2001serverSocket = new ServerSocket(2001);catch(IOException e)System.out.println(“server is not start”+ e);System.out.println(“Server is listening ”);this.start();/引发监听线程,确定监听机制,服务器的run()方法主要是进行监听工作。public void run()try /无限循环while(true) /调用了阻塞方式的accept()方法Socket client = serverS

    6、ocket.accept();/accept()接收到客户请求返回,创建DataCommutation对象DataCommutation com = new DataCommutation(client);com.start();catch(IOException e)System.out.println(“listening is error ”+e);,确定数据通信机制,DataCommutation线程类主要是在服务器套接字建立好连接之后,负责与客户端的一切通信工作。,/ DataCommutation线程类代码Class DataCommutation extends Thread C

    7、ustomer customer = null;/定义对象输入流类ObjectInputStream streamFromClient = null;Public DataCommutation(Socket inFromClient)try/将套接字对象输入流创建为对象输入流streamFromClient = new ObjectInputStream(inFromClient.getInputStream();try/从输入流读取对象customer = (Customer)streamFromClient.readObject();/捕捉异常 /捕捉异常,public void run

    8、()try/创建文件输出流对象,customer.dat是存放资料的文件FileOutputStream fp = new FileOutputStream(“customer.dat”);/将文件输出流创建为对象输出流ObjectOutputStream streamOutputFile = new ObjectOutputStream(fp);/输出customer对象到文件streamOutputFile.writeObject(customer);/关闭流对象streamOutputFile.close(); fp.close();/捕捉异常 / DataCommutation线程类结

    9、束,知识点,ObjectInputStream类 ObjectOutputStream类 InvalidClassException异常类 NotSerializableException异常类,单元练习 我们要开发航班资料录入模块中的服务器端应用,以实现公司工作人员将航班信息保存到中心数据中。服务器程序需要用Java来开发,以下是服务器功能: (1)服务器应能够接收前台客户机上发来的航班资料。(2)服务器应能够将航班资料保存在flightInfor.dat文件中。(3)服务器是多线程的,能够同时满足多个客户机的访问。(4)服务器在端口2001上运行。,9.3 编写客户端应用程序,案例-用户注

    10、册模块之客户端,提出问题 用户注册界面已经生成,现在需要确定按钮触发处理程序。即当用户填写完注册资料后,点击确定,注册信息应该发送到远程服务器端应用程序,由服务器程序将注册信息保存。,分析问题 打包数据 将注册信息打包成一个类对象,即实现面向对象中的封装特性。 连接服务器程序 通过Socket向服务器发送连接请求 发送数据 连接一旦建立成功,马上发送注册信息给服务器。,解决问题 确定创建客户机所要使用的类 确定要提交的数据 何时向服务器提交数据,确定创建客户机所要使用的类,创建客户机的过程就是创建一Socket对象。 语法示例:Socket clientSocket = new Socket(

    11、“172.16.10.1”,1001);,Socket类包含的构造函数和基本方法,打包数据,客户资料是以对象的形式发送,所以数据必须被写入到Customer对象中,然后发送给服务器。 class Customer implements java.io.Serializable String customID;String name;String sex;String age;String address;String phone;String e_mail; /网络上传输的对象必须实现java.io.Serializable接口,确定向服务器提交数据的机制,当用户点击submit按钮时,连接服

    12、务器,向服务器发送数据。public void actionPerformed(ActionEvent evt) Object obj = evt.getSource();if(obj = buttonSubmit)/创建一Customer对象,将客户资料写入Customer对象 try/创建一客户套接字,连接服务器Socket toServer = new Socket(“127.0.0.1“,2001);/创建对象输出流,将数据写入套接字ObjectOutputStream streamToServer = New ObjectOutputStream(toServer.getOutput

    13、Stream();streamToServer.writeObject(customer);/关闭对象输出流streamToServer.close();,单元练习我们要开发航班资料录入模块中的客户端应用,以实现公司工作人员将航班信息保存到中心数据中。航班资料录入界面已经生成,请加入事件处理代码。,小 结,包的ServerSocket类用于创建一个套接字以让服务器监听客户的请求。 ServerSocket类的accept()方法返回对客户的套接字的引用,它是Socket类的对象。 Socket类包含功能:提供对接收或发送数据给客户的客户流的引用。这由Socket类的getInputStream()和getOutputStream()方法实现。 可用ObjectInputStream类的readObject()方法读入来自串行化的对象。 可用ObjectOutputStream类的writeObject()方法写出对象类数据到流。 本章节主要介绍的是面向连接的TCP通信方式,这个也是大部分应用中涉及到的部分。大家如果想了解面向数据报的UDP通信方式,可以查阅DatagramPacket 类和DatagramSocket类。,


    注意事项

    本文(第9章Socket编程.ppt)为本站会员(boatfragile160)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
    备案/许可证编号:苏ICP备17064731号-1 

    收起
    展开