安卓 java 服务器 系统,安卓系统的websocket服务器,java

博主在构建Android上的WebSocket服务器时遇到问题,服务器能够成功进行握手并接收浏览器发送的消息,但在尝试向浏览器发送消息时遇到障碍。消息无法送达,并导致浏览器关闭连接。问题已经在JavaSE环境下在Windows和Linux上测试通过,但不适用于Android 3.2。代码中显示在写入消息到输出流后,浏览器会关闭WebSocket连接,可能是由于编码或输出处理的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我正在为Android构建一个简单的websocket服务器。 (让我们说,3.2 - 我尝试了一些早期的Android版本,结果相同)。在Android上尝试代码之前,我在Windows,Linux上的Java SE下进行了测试。它可以与Chrome和Firefox一起工作。 但是在Android上它不起作用。请参阅代码中的评论。安卓系统的websocket服务器,java

简而言之:

我顺利通过握手和浏览器确认连接正常。

我很高兴地通过Websocket接收来自浏览器的所有消息我不能发送任何东西:它只是没有得到JavaScript回调。 经过一些重试(有时立即)浏览器关闭websocket。

下面是代码:

//BufferedOutput myout=new BufferedOutput(mysocket.getOutputStream()));

//myout was successfully used for handshaking before

String msg=”I want to send this”;

try {

myout.write(129);//129=0x81); text frame 0x81=129

int payloadlen=msg.length();

myout.write(payloadlen);

byte[] bts=msg.getBytes(Charset.forName("UTF-8"));

myout.write(bts,0,payloadlen);

myout.flush();//after this command client Browser closes websocket

//firefox also gives error

}

catch(IOException ee)

{

System.out.println("Error sending websocket message"+ee);

try{myclose();}catch(IOException eio){}

}

}

谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值