起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3094|回复: 5

[分享] ajax调用java实现socket tcp/ip通信

  [复制链接]

44

主题

116

帖子

364

积分

中级会员

Rank: 3Rank: 3

积分
364
QQ
发表于 2017-7-26 13:59:17 | 显示全部楼层 |阅读模式
简单实现socket tcp/ip通信,实现socket客户端
js代码如下:
var Sock_test1 = '$UI/sxboc-mk/authSystem/new_j.j';
Model.prototype.button1Click = function(event){
        var rcv;
                   $.ajax({
            type: "GET",

            url:require.toUrl('./new_j.j'),
            async: false,
            cache:false,
            success: function(result){

                rcv=result;      
            },error:function(){
                    justep.Util.hint("接收数据失败");
                throw justep.Error.create("接收数据失败");
            }
        });
        justep.Util.hint(rcv);//获得的返回数据
           return rcv;
};


new_j.j 中的代码如下:

import java.net.*;
import java.io.*;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class New_j extends com.justep.ui.impl.JProcessorImpl  {
        public void execute(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
                String abc=null;
        Socket socket = new Socket("192.168.88.219" , 2001);//这里的IP地址填写手机端服务器的IP地址
         OutputStream os = socket.getOutputStream();//字节输出流
         PrintWriter pw =new PrintWriter(os);//将输出流包装成打印流
         pw.write("用户名:admin;密码:123");
         pw.flush();
         socket.shutdownOutput();
        InputStream is = socket.getInputStream();
        BufferedReader br = new BufferedReader(new InputStreamReader(is));
        String info = null;
        while((info=br.readLine())!=null){
                System.out.println("我是客户端,服务器说:"+info);
                abc= info;
        }
        // 关闭输入流、socket
        br.close();
        is.close();
        pw.close();
        os.close();
        socket.close();
        response.getWriter().print(abc);

        }
}

发表于 2017-7-26 15:09:58 | 显示全部楼层
本帖最后由 liangyongfei 于 2017-7-26 15:11 编辑

ajax 走的协议实际上是 http请求!
http 协议是  socket 之上封装的!
虽然你java中写的代码是socket  ,但是 服务器发送消息给给客户端走的还是http协议
https://zhidao.baidu.com/question/432785222814337084.html
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

44

主题

116

帖子

364

积分

中级会员

Rank: 3Rank: 3

积分
364
QQ
 楼主| 发表于 2017-7-26 15:13:46 | 显示全部楼层
liangyongfei 发表于 2017-7-26 15:09
ajax 走的协议实际上是 http请求!
http 协议是  socket 之上封装的!
虽然你java中写的代码是socket  ,但 ...

你是指ajax调用java时是使用的http吗?我这边是为了和第三方socket通信
回复 支持 反对

使用道具 举报

发表于 2017-7-26 16:13:46 | 显示全部楼层
ggzhihh 发表于 2017-7-26 15:13
你是指ajax调用java时是使用的http吗?我这边是为了和第三方socket通信

嗯!服务器java和第三方socket通信 没问题!
我是说js不能直接支持socket 协议!

你的思路相当于,服务器和第三方通过socket通信
客户端和服务器再通过http协议通讯
反正最终消息也可以传递
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

44

主题

116

帖子

364

积分

中级会员

Rank: 3Rank: 3

积分
364
QQ
 楼主| 发表于 2017-7-26 16:53:56 | 显示全部楼层
liangyongfei 发表于 2017-7-26 16:13
嗯!服务器java和第三方socket通信 没问题!
我是说js不能直接支持socket 协议!

是的
回复 支持 反对

使用道具 举报

19

主题

80

帖子

121

积分

初级会员

Rank: 2

积分
121
QQ
发表于 2017-7-27 13:38:12 | 显示全部楼层
可以服务器上弄个和第三方socket通信的中间层,你的js用websocket和中间层通信。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-12 17:12 , Processed in 0.058964 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表