美文网首页
初涉网络编程

初涉网络编程

作者: jian321 | 来源:发表于2017-10-20 12:14 被阅读0次

    一:实验目标

    实现一个简单的客户服务器GUI小程序

    二:实验要求

    1 、服务器程序最多同时接受5个客户的访问。
    2 、实现迭代回声服务器功能,循环接受客户消息,并以特定消息结束服务(当用户输入quit时,服务器结束本次的服务)
    3、实现服务器端简单的智能回答
    [附注:实现语言:java]

    三:实验详细过程

    一、如何实现最多接受五个客户的访问?
    答:通过增加一个循环语句,控制访问过程。通过ServerSocket对象创建一个服务监听端,调用accept()函数监听是否有客户请求连接。

    ServerSocket s_socket = new ServerSocket(PORT);
    ....
    for (int i = 0; i < 5; i++) {
      Socket socket = s_socket.accept();
      ...
      socket.close();
    }
    s_socket.close();
    

    二、如何实现同时访问?
    答:可以通过在服务端创建线程实现多个客户端对服务端的访问。
    三:服务端和客户端之间怎样进行交互?使用何种协议?
    答:使用的协议有 TCPUDP 协议。本次实验所用协议为TCP--通过调用 DataInputStream()DataOutputStream() 实现服务端和客户端之间的信息交互。

    in = new DataInputStream(socket.getInputStream());
    out = new DataOutputStream(socket.getOutputStream());
    

    三:如何设计简单的问答?如何体现智能?
    答:通过客户端输入的信息,对信息进行 关键字 搜索,到服务端的数据中心进行匹配,通过使用正则表达式对字符串进行匹配操作。可以对同一类问题设置多个回答,调用 Random() 函数产生随机数,模拟随机回答。

    四:运行界面如下图:


    四:实验总结

    1、设置监听端口时需要主要端口占用问题。通过在控制台输入 netstat -ano 命令查看本机端口使用情况.
    2、运行程序时,程序卡在中途无法运行:原因:服务端代码与客户端代码在同一个主函数里,当运行到服务端代码时,程序阻塞,导致整个程序阻塞。解决方案:
    一、使客户端和服务端代码分离。
    二、在调用服务端代码时,可以创建一个新的线程,实现并行运行。

    相关文章

      网友评论

          本文标题:初涉网络编程

          本文链接:https://www.haomeiwen.com/subject/pwvmuxtx.html