




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
在 Socket 的程序开发中 服务器端使用 ServerSocket 等待客户端的链 接 对于 Java 的网路程序来讲 每一个客户端使用一个 Socket 对象 表示 ServerSocket ServerSocket 类主要用在服务器端程序的开发上 用于接收客户端的 链接请求 方法方法类型类型描述描述 1PublicServerSocket intport throws IOException 构造创建 ServerSocket 实例 并指 定监听端口 2PublicSocketaccept throws IOException 普通等待客户端连接 此方法连接 之前一直阻塞 3Public InetAddress getInetAddress 普通 返回服务器的 IP 地址 4Public boolean isClosed 普通 返回 ServerSocket 的关闭状态 5Publicvoidclose throws IOException普通 关闭 ServerSocket Socket 在服务器端每次运行时都要使用 accept 方法等待客户端连接 此方 法执行之后服务器端讲进入阻塞状态 直到客户端连接之后程序才可 以向下继续执行 此方法的返回值是 Socket 每一个 Socket 都表示一 个客户端对象 方法方法类型类型描述描述 1 Public Socket String host int port throws UnKnownHostExcetion IOExceptio n 构造 构造 Socket 对象 同时指定要 连接服务器的主机名称及连接 端口 2 PublicInputStream getInputStream throws IOException 普通 返回此套接字的输入流 3 PublicOutputStream getOutputStream throws IOException 普通 返回此套接字的输出流 4 Publicvoidclose throws IOException 普通 关闭此 Socket 5Public Boolean isClosed 普通判断此套接字是否被关闭 多线程多线程 Java 的多线程实现 有两种方式 1 继承 Thread 类 2 实现 Runnable 接口 继承继承Thread类类 一个类只要继承了 Thread 类 此类就称为多线程操作类 在 Thread 子类中 必须覆写 run 方法 此方法为线程的主体 BufferedReader 是从缓冲区之中读取内容 所有的输入的字节数据都将放在缓冲区之 中 BufferedReader 实例化 BufferedReader buf new BufferedReader new InputStreamReader System in InputStreamReader是R eader的子类 将输入的字节流转化为字符流 对象输出流 对象输出流 ObjectOutputStream 方法或常量方法或常量类型类型描述描述 1 Public ObjectOutputStream OutputStrea m out throws IOException 构造传入输出的对象 2 Public final void writeObject Object obj throws IOException 普通输出对象 对象输入流 对象输入流 ObjectInputStream 方法或常量方法或常量类型类型描述描述 1 PublicObjectInputStream InputStream in throws IOException 构造构造输入对象 2 PublicfinalObjectreadObject throwsIOException ClassNotFoundException 普通从指定位置读取对象 以下代码实现了服务端与客户端的交互 里面包含了网络编程 线程 流等知识点 源代码 源代码 Server java 中的代码中的代码 import java io import public class Server ServerSocket server 声明ServerSocket public Server try server new ServerSocket 5566 构建服务 绑定端口 catch IOException e TODO 自动生成 catch 块 e printStackTrace public void startServer 定义startServer方法 由此启动服 务 ServerThread st new ServerThread new出一个新线程 st start 启动线程 public static void main String args Server s1 new Server 用Server类创建一个S1对象 此为对 象实例化 s1 startServer 调用startServer 方法 class ServerThread extends Thread 继承Thread类 public void run while true try System out println 开始监听 Socket formClient server accept ObjectOutputStream oos new ObjectOutputStream formClient getOutputStream BufferedReader buf new BufferedReader new InputStreamReader System in System out println 请输入 String s buf readLine oos writeObject s ObjectInputStream ois new ObjectInputStream formClient getInputStream String sc String ois readObject System out println 客户端说 sc Thread sleep 100 catch IOException e TODO 自动生成 catch 块 e printStackTrace catch ClassNotFoundException e TODO 自动生成 catch 块 e printStackTrace catch InterruptedException e TODO 自动生成 catch 块 e printStackTrace Client java 中的代码 中的代码 import java io import public class Client public static void main String args while true try Socket toServer new Socket InetAddress getLocalHost 5566 BufferedReader buf new BufferedReader new InputStreamReader System in ObjectInputStream ois new ObjectInputStream toServer getInputStream String s String ois readObject System out println 服务器端说 s ObjectOutputStream oos new ObjectOutputStream toServer getOutputStream System out println 请输入 String sc buf readLine oos writeObject sc catch UnknownHostException e TODO 自动生成 catch 块 e printStackTrace catch IOException e TODO 自动生成 catch 块 e printStackTrace catch ClassNotFoundException e TODO 自动生成 catch 块 e printStackTrace 运行说明运行说明 把 Server java 和 Client java 两个文件放到同一个文件夹 比如放在 F 网络编程文件夹下 运行步骤 开始 运行 cmd cd F 网络编程 F java
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论