⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 conservlet.java

📁 一个用于WEB方式的文本交谈.即N对N方式交谈
💻 JAVA
字号:
package cn.com.sihitech.cc.chat;

import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.text.*;
import java.util.*;
import java.net.*;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2006</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */
public class conServlet extends HttpServlet {

    private ServletConfig config;

    final public void init(ServletConfig config) throws ServletException {
        this.config = config;
    }

    final public ServletConfig getServletConfig() {
        return config;
    }

    protected void service(HttpServletRequest request,
                           HttpServletResponse response) throws
            ServletException, IOException {
        request.setCharacterEncoding("GBK");
        /*读取XML配置信息*/
        ServletContext sctx = getServletConfig().getServletContext();
        String serverIp = sctx.getInitParameter("serverIp");
        int serverPort = Integer.parseInt(sctx.getInitParameter("serverPort") == null ?
                                          "0" :
                                          sctx.getInitParameter("serverPort"));

        String conFlag = request.getParameter("conFlag") == null ? "" :
                         request.getParameter("conFlag");
        /*客户申请进行文本交谈*/
        if ("req".equals(conFlag)) {
            String result = connectToCSR(request, response, serverIp,
                                         serverPort);
            request.setAttribute("result", result);
            RequestDispatcher dispatcher = getServletContext().
                                           getRequestDispatcher(
                    "/chatDeal.jsp");
            dispatcher.forward(request, response);
            return;

        }
        else if ("msg".equals(conFlag)) {
            System.out.println("aaaa");
            String msg = request.getParameter("msgContent") == null ? "" :
                         request.getParameter("msgContent");
            System.out.println("######:"+msg);
            //HttpSession aSession = request.getSession(true);
            //aSession.setAttribute("CUSTOMER_MSG",msg);
            String sendRs = sendMsgToCSR(request, response, serverIp,
                                         serverPort, msg);
            request.setAttribute("sendRs", sendRs);
            RequestDispatcher dispatcher = getServletContext().
                getRequestDispatcher("/chatContent.jsp");
            dispatcher.forward(request, response);
            return;

        }
    }

    public String connectToCSR(HttpServletRequest request,
                               HttpServletResponse response, String serverIp,
                               int serverPort) {
        Socket s = null;
        DataInputStream in = null;
        DataOutputStream out = null;
        byte buff[] = new byte[1024];
        String senStr = "con";
        String accStr = "";

        try {
            s = new Socket(serverIp, serverPort);
            s.setSoTimeout(30000);
            in = new DataInputStream(s.getInputStream());
            out = new DataOutputStream(s.getOutputStream());
            out.write(senStr.getBytes());
            System.out.println("发送数据包:" + senStr);
            in.read(buff);
            accStr = new String(buff, "GBK").trim();
            System.out.println("接收数据包:" + accStr);
        } catch (IOException e) {
            accStr = "IO错误:" + e.getMessage();
            System.out.println("IO错误:" + e.getMessage());
        }
        return accStr;
    }
    public String sendMsgToCSR(HttpServletRequest request,
                               HttpServletResponse response, String serverIp,
                               int serverPort, String msg) {
        Socket s = null;
        DataInputStream in = null;
        DataOutputStream out = null;
        byte buff[] = new byte[1024];
        //String senStr = "con";
        String accStr = "";

        try {
            s = new Socket(serverIp, serverPort);
            s.setSoTimeout(15000);
            in = new DataInputStream(s.getInputStream());
            out = new DataOutputStream(s.getOutputStream());
            out.write(msg.getBytes());
            System.out.println("发送数据包:" + msg);
            in.read(buff);
            accStr = new String(buff, "GBK").trim();
            System.out.println("接收数据包:" + accStr);
        } catch (IOException e) {
            //accStr = "IO错误:" + e.getMessage();
            System.out.println("IO错误:" + e.getMessage());
            accStr = "消息["+msg+"]未发送成功!";
        }
        return accStr;
    }

    public void destroy() {
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -