Topic: 谁试过在MIDP1.0下用http连接Socket Server?

  Print this page

1.谁试过在MIDP1.0下用http连接Socket Server? Copy to clipboard
Posted by: murphys
Posted on: 2003-09-14 15:36

原有的一个系统,Client和Server通过Socket通信,现在要加上移动设备访问
服务器的功能,考虑到大部分机型不支持Socket,采用http连接每次获取数据
后断开。测试时发现可以连接并发送数据,但似乎HTTP在此之上加了些东西
每次发送的数据到Server端就变了。比如说我用IE直接访问Socket Server(
类似于地址栏直接输入http://localhost:listenPort/)则Socket Server打印出来
我传送了361个字节的数据(是否IE封装的request请求就是361字节?)如果用
我自己的MIDP程序通过http协议访问Socket Server的话,传送16个字节的
数据则Socket Server端输出也是16字节,问题是打印出来发现数据完全不对
我对协议部分不是特别了解,请各位大虾指教~
客户端连接部分代码如下:
byte[] buf = packData(); //这里我封装了一个16字节的数据包
try{
HttpConnection hc = (HttpConnection)Connector.open("http://localhost:12345",
Connector.READ_WRITE, false);
hc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
hc.setRequestProperty("User-Agent",
"Profile/MIDP-1.0 Configuration/CLDC-1.0");
hc.setRequestProperty("Content-Language", "en-US");
hc.setRequestProperty("Accept", "application/octet-stream");
hc.setRequestProperty("Connection", "close");
//向Socket Server发送数据
out = new DataOutputStream(hc.openOutputStream());
out.write(buf,0,buf.length);
out.flush();
int length = (int)hc.getLength();
byte[] data = null; //接收服务器端反馈
//以下代码接收服务器端响应数据,可由于发送过去的数据格式就不对
//所以始终无法得到返回
is = new DataInputStream(hc.openInputStream());
if( length != -1 ){
int total = 0;
data = new byte[length];
System.out.println("data length:"+data.length);
while( total < length ){
total += is.read( data, total, length - total );
}
} else {
ByteArrayOutputStream tmp = new ByteArrayOutputStream();
int ch;
while( ( ch = is.read() ) != -1 ){
tmp.write( ch );
}
data = tmp.toByteArray();
System.out.println("data is -1:"+data.length);
}

2.Re:谁试过在MIDP1.0下用http连接Socket Server? [Re: murphys] Copy to clipboard
Posted by: donnan
Posted on: 2003-09-29 16:58

socket是socket
http是http
不能通用

我也正为这事情烦恼着了

3.Re:谁试过在MIDP1.0下用http连接Socket Server? [Re: murphys] Copy to clipboard
Posted by: carl1980
Posted on: 2003-10-29 11:40

手机和HTTP通讯做Base64编码,HTTP和Socket通讯要做解码在发送。服务端对中文做Unicode编码。


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923