webservice接口收不到数据,提示传输成功

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了webservice接口收不到数据,提示传输成功相关的知识,希望对你有一定的参考价值。

参考技术A webservice接口收不到数据,提示传输成功,说明接口是异步的
传输是成功的,只是表明友盟服务器端接受了当次推送指令,不一定表示成功下发到设备。 webservice接口只会做一些基本的校验,比如接口鉴权判断、检查是否漏掉了必填的参数等,传输成功之后,会把要发送的任务投递到发送队列,由后续的处理程序从队列中拉取出来后,进行发送。
一般来说,如果设备的长连接在线的话,因为我们服务器的并发处理能力非常强大,基本上可以做到设备能第一时间收到消息,即发即到。

JAVA socket 收不到数据 求指点

//client
package lw.Net.SocketStop;
import java.io.*;
import java.net.*;
public class Sender

private String host="127.0.0.1";
private int port=1001;
private Socket s;
public static int stopWay=1;
private String msg="hello";

public Sender() throws IOException

s=new Socket(host,port);

public void sent() throws Exception

PrintWriter pw=new PrintWriter(s.getOutputStream());
for(int i=0;i<2;i++)

pw.println(msg+i+",");
System.out.println("sent NO."+i+" data");
Thread.sleep(1000);
s.close();



public static void main(String[] args) throws Exception

new Sender().sent();


//server
package lw.Net.SocketStop;
import java.io.*;
import java.net.*;

public class Receiver

/**
* @param args
*/

private int port=1001;
private ServerSocket ss;
private Socket s;
private String msg;

public Receiver() throws IOException


ss=new ServerSocket(port);
System.out.print("Server started!");


public void receive() throws Exception

s=ss.accept();
System.out.println("发现socket请求!"+s.getPort());
BufferedReader br=new BufferedReader(new InputStreamReader(s.getInputStream()));

for(int i=0;i<2;i++)


msg=br.readLine();
System.out.println("receive:"+msg);
Thread.sleep(1000);


s.close();
ss.close();


public static void main(String[] args) throws Exception
// TODO Auto-generated method stub
if(args.length>0)

stopWay=Integer.parseInt(args[0]);


new Receiver().receive();



参考技术A 先运行Receiver,再运行Sender。

System.out.println("sent NO."+i+" data");
System.out.println("receive:"+msg);
这两句打印了没?追问

System.out.println("sent NO."+i+" data");

这句有打印出来;
System.out.println("receive:"+msg);

这句打印的是receive:null两次

追答

System.out.println("sent NO."+i+" data");
这句没有打印说明没有发送成功呀。所以接收的就是null。
你要先运行Receiver.java再运行Sender.java

追问

System.out.println("sent NO."+i+" data");

这句能打印出来

我发现问题在哪了,在Sender端关闭socket前 关闭流(pw.close()) Receiver端就可以收到数据, 大神知道什么原因吗 我不是很明白啊

追答

因为你的pw是由s创建的,你在第一次循环的时候就s.close,那么下一次循环就没了。

你把s.close();写到for循环外面。这样:
pw.close();
s.close();

以上是关于webservice接口收不到数据,提示传输成功的主要内容,如果未能解决你的问题,请参考以下文章

为啥电脑已提示邮件发送成功而对方却没收到?

webservice接口返回错误回滚

请问达人,java 提供webservice接口,用XML传输数据,怎么实现?

WebService的使用

Python调用webservice接口

WebService接口数据传输加密