又是一个难题:如何用HTTP方式实现互动游戏?

zuliangjin 2003-11-03 06:01:48
在socket方式被设备支持的情况下,互动游戏实现不难。我已经在moto手机实现了几款游戏。但是目前在nokia3650/7650上遇到了问题,就是HTTP方式是官方的唯一支持通讯方式。

问题是:Http通讯本质是应答式的(客户端发起请求,服务器返回应答)。但是如果有新的信息从服务器向客户端推送,用何种技巧实现?
...全文
88 38 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
olivine789 2004-01-10
  • 打赏
  • 举报
回复
我做的也是联网互动游戏,采用的是 “即使消息” 通信
J2MEBOY 2004-01-09
  • 打赏
  • 举报
回复
我使用一个比较笨的办法解决:
1。在服务器上为当前用户建立一个信息表
2。当别的用户进行操作后把信息写到这个信息列表
3。在当前用户的程序中建立一个线程,循环从服务器取信息,每次都取完,然后清空信息列表。
4。接到信息后对信息进行处理
基本上类似与互动。。。。

-------------------------------
这样是不是太对不起玩家了,关注!

(PS: 我做过Moto388C的应用支持Socket连接)
dytsoft 2004-01-09
  • 打赏
  • 举报
回复
学习
harabi 2004-01-08
  • 打赏
  • 举报
回复
xue_sharp(靠) 高

一石头惊醒梦中人







..........................................................不过我还是继续睡
xue_sharp 2003-11-28
  • 打赏
  • 举报
回复
我虽然不做移动开发,但是http的push技术还是知道一些。关键就是不要用标准web服务器,要自己写端口监听,自己做http响应,但这个响应永远不要完,客户端就好象一个请求但总也下载不完全。先说这么多,和推技术的聊天室有些类似
sunny110 2003-11-28
  • 打赏
  • 举报
回复
up
gdh_zj 2003-11-26
  • 打赏
  • 举报
回复
to skygui(skygui)
openDataInputStream后,直接readUTF();
服务器端,用DataOutputStream.writeUTF(string)
我刚刚解决,QQ:76043777,可以多交流
errantry 2003-11-26
  • 打赏
  • 举报
回复
在388c开发中我也遇到了这个情况。
我不明白的是,为什么GPRS已经设置后,浏览器还要设置代理呢。
可能问题出在这里。
to skygui(skygui) :
你的程序肯定能在模拟器上跑。
shiqizheng 2003-11-26
  • 打赏
  • 举报
回复
如果支持socket的话移动就赚不了多少钱了。。。。。。嘿嘿
疯狂低调 2003-11-12
  • 打赏
  • 举报
回复
我顶!
网络咖啡 2003-11-11
  • 打赏
  • 举报
回复
关注
zuliangjin 2003-11-10
  • 打赏
  • 举报
回复
是啊,这样作网络流量太大。
但好像找不到其他方法了哦??=(
skygui 2003-11-10
  • 打赏
  • 举报
回复
我写了一个HttpConnection的连接测试,使用388c手机无法正确使用,请指教
private String getHttpConnection(String url) throws IOException
{

HttpConnection hc =null;
DataInputStream is=null; // hc.openInputStream();
StringBuffer str = new StringBuffer();
try
{
hc =(HttpConnection) Connector.open(url);
is = new DataInputStream(hc.openDataInputStream());

int ch;
while ((ch=is.read())!=-1)
{
str.append((char) ch);
}
}
catch(Exception e)
{
e.printStackTrace();
str.append("open Error");
}
finally
{
try
{
if (is!=null) is.close();
if (hc!=null) hc.close();
}
catch(IOException ioe)
{
ioe.printStackTrace();
str.append("close Error");
}
}
return str.toString();
}

在模拟器无法取得数据,在真机上也无法取得数据。
真机上[JAVA应用]-[设置]-[默认连接]-CMWAP和CMNET都测试过,依然无法取得数据

有些没有数据返回,有些返回的数据为<html><head><title>Error</title></head><body>The parameter is incorrect.</body></html>
url="www.abkk.com"返回上述回应
url="www.yahoo.com"则没有返回,
请指教
cx_super 2003-11-10
  • 打赏
  • 举报
回复
好象高手们觉得我们的问题没有意思,经常有问题不能解决
cx_super 2003-11-10
  • 打赏
  • 举报
回复
没有办法,在服务器上设一个循环,要信息不为空才返回,可以减少一定的信息流量.
olivine789 2003-11-09
  • 打赏
  • 举报
回复
这样是不是网络流量太大啊,这样用户的费用可就高了.
cx_super 2003-11-08
  • 打赏
  • 举报
回复
我使用一个比较笨的办法解决:
1。在服务器上为当前用户建立一个信息表
2。当别的用户进行操作后把信息写到这个信息列表
3。在当前用户的程序中建立一个线程,循环从服务器取信息,每次都取完,然后清空信息列表。
4。接到信息后对信息进行处理
基本上类似与互动。。。。
ggzzkk 2003-11-07
  • 打赏
  • 举报
回复
to zuliangjin(苦命姥姥)
联通的CDMA支持SOKECT连接吗?有相关资料看吗,刚刚在联通网上没有找到。
minj2me 2003-11-07
  • 打赏
  • 举报
回复
最近要做个连网的锄大D游戏,请大家请点请点。
penguinsun 2003-11-06
  • 打赏
  • 举报
回复
如果各位在上海,要做互动性的游戏,特别是类似mud的手机Kjava文字游戏(最好有mud服务端编程经验),可以跟我联系,mail:sunbq@isit.cn
加载更多回复(18)

13,097

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧