Java网络编程,实现客户端与服务端的交互_第1页
Java网络编程,实现客户端与服务端的交互_第2页
Java网络编程,实现客户端与服务端的交互_第3页
Java网络编程,实现客户端与服务端的交互_第4页
Java网络编程,实现客户端与服务端的交互_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、在Socket的程序开发中,服务器端使用ServerSocket等待客户端的链接,对于Java的网路程序来讲,每一个客户端使用一个Socket对象表示。ServerSocketServerSocket类主要用在服务器端程序的开发上,用于接收客户端的链接请求。方法类型描述1Public ServerSocket(int port) throws IOException构造创建ServerSocket实例,并指定监听端口2Public Socket accept() throws IOException普通等待客户端连接,此方法连接之前一直阻塞3Public InetAddress getInet

2、Address()普通返回服务器的IP地址4Public boolean isClosed()普通返回ServerSocket的关闭状态5Public void close() throws IOException普通关闭ServerSocketSocket在服务器端每次运行时都要使用accept()方法等待客户端连接,此方法执行之后服务器端讲进入阻塞状态,直到客户端连接之后程序才可以向下继续执行,此方法的返回值是Socket,每一个Socket都表示一个客户端对象。方法类型描述1Public Socket(String host,int port) throws UnKnownHostExc

3、etion,IOException构造构造Socket对象,同时指定要连接服务器的主机名称及连接端口。2Public InputStream getInputStream() throws IOException普通返回此套接字的输入流3Public OutputStream getOutputStream() throws IOException普通返回此套接字的输出流4Public void close() throws IOException普通关闭此Socket5Public Boolean isClosed()普通判断此套接字是否被关闭多线程:Java的多线程实现:有两种方式:1.

4、继承Thread类2. 实现Runnable接口继承Thread类一个类只要继承了Thread类,此类就称为多线程操作类,在Thread子类中,必须覆写run()方法,此方法为线程的主体。BufferedReader是从缓冲区之中读取内容,所有的输入的字节数据都将放在缓冲区之中。BufferedReader实例化BufferedReader buf=new BufferedReader(new InputStreamReader(System.in);InputStreamReader是R eader的子类,将输入的字节流转化为字符流。对象输出流:ObjectOutputStream方法或常量

5、类型描述1Public ObjectOutputStream(OutputStream out) throws IOException构造传入输出的对象2Public final void writeObject(Object obj) throws IOException普通输出对象对象输入流:ObjectInputStream方法或常量类型描述1Public ObjectInputStream (InputStream in) throws IOException构造构造输入对象2Public final Object readObject() throws IOException, Cl

6、assNotFoundException普通从指定位置读取对象以下代码实现了服务端与客户端的交互:里面包含了网络编程、线程、流等知识点源代码:Server.java中的代码import java.io.*;import .*;public class Server ServerSocket server; / 声明ServerSocketpublic Server() try server = new ServerSocket(5566); / 构建服务,绑定端口 catch (IOException e) / TODO 自动生成 catch 块e.printStackTrace();publ

7、ic 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

8、 (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();o

9、os.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 自动生成 c

10、atch 块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 = ne

11、w 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(&quo

12、t;请输入:");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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论