socket返回到数据如何传送到前端html页面

fangsky fangsky 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
项目需求大概是:web客户端实现发送数据和接收服务端返回的数据。 服务端不用管。
1、前端递交通讯数据比如(ip,端口,登录账号),然后通过TCP通讯发送到服务器端
2、服务器端接收验证后,返回xml(或json)数据,然后把数据展示在前端html页面上。
login.html------>lwservlet.java-------->csocket.java------->服务器端

目前web客户端的流程大概是这样的:
1、login.html递交页面
login.html页面通过ajax post到lwservlet.java文件,通过servlet处理接收
$.ajax({
type: "post",
url: 'lwServlet',
//dataType:"json",
data: data,
error: function () {
alert("服务繁忙,请稍候重试");
},
success: function (result){
alert(result);
******接收返回的数据....******
}
{

2、lwservlet.java,用servlet的doPost接收,数据递交成功的。

request.setCharacterEncoding("UTF-8");//防止乱码
String loginip = request.getParameter("cip");
Integer loginport = Integer.parseInt(request.getParameter("cport").trim());
String loginacct = request.getParameter("acct");
String loginPwd = request.getParameter("Pwd");
//Client clientw = new Client(loginip,loginport); //socket递交
//clientw.start();
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
//out.print(loginip);//返回登录信息
//out.write(loginacct); //测试递交的账号返回,
out.write(服务端返回的数据); //测试递交的账号返回,
out.flush();
out.close();

3、csocket.java 通过TCP通讯发送数据到服务器端,服务器端然后返回数据。
目前我单独测试的时候,发送和接收数据都是成功的。

public class Client extends Thread {

//定义一个Socket对象
Socket socket = null;
ArrayList<Alarm> alarmArrayList = new ArrayList<>();

private String username="测试账号";
private String password="12345";
private static String cip="192.1.100.200"; //服务器IP
private static int cport=10222;

public Client(String host, int port) {
try {
//需要服务器的IP地址和端口号,才能获得正确的Socket对象
socket = new Socket(host, port);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
...发送数据和接收服务器端数据....
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(),"gb2312"));
//获取要传送的xml文件字符串形式
LoginXMLToString xmlFile = new LoginXMLToString(username,password);
String xml = xmlFile.loginXMLToString();
InputStream inputStream = new ByteArrayInputStream(xml.getBytes("UTF-8"));
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
System.out.println("发送通讯报文");    
String line;
while ((line = bufferedReader.readLine()) != null) {
bufferedWriter.write(line +"\n");
System.out.println(line); //输出服务器端返回的数据,如何传给前端呢????
bufferedWriter.flush();
}


问题:
csocket.java接受的返回数据如何传送到前端html页面呢? 谢谢,刚开始学java,基本属于小白。
...全文

相关推荐

评论 5
收藏 已收藏
分享
返回顶部
fangsky
Web 开发 81,108 成员 341,721 内容