站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2ME 专题网络问题,在模拟器上可以连接,真机上不能连接.

网络问题,在模拟器上可以连接,真机上不能连接.

摘要: 网络问题,在模拟器上可以连接,真机上不能连接.


一个简单的程序,客户端和服务器简单的对话.

客户端发消息"this is client",然后显示服务器发来的消息.
服务器接受到消息后,返回"this is server";

模拟器上可以运行,真机上连接不上.
J300,可以上网.

客户端代码
DataOutputStream dos = null;
DataInputStream dis = null;
boolean berror = false;
try {
serverHc = (HttpConnection) Connector.open("http://zengcity.vicp.net:8080/WMLParserWebModule/parserserver",
Connector.READ_WRITE);
serverHc.setRequestMethod(HttpConnection.POST);
serverHc.setRequestProperty("Connection", "Keep-Alive");
serverHc.setRequestProperty("Content-Type",
"application/octet-stream");
berror = false;

} catch (IOException ex) {
berror = true;
}

if (!berror) {
try {
dos = serverHc.openDataOutputStream();
dos.writeUTF("Hello,this is client");
} catch (IOException ex1) {
berror = true;
MainMIDlet.instance.displayable.tf_stat.setString("send error");
}
}

if (!berror) {
try {
dis = serverHc.openDataInputStream();
MainMIDlet.instance.displayable.tf_stat.setString(dis.readUTF());
} catch (IOException ex2) {
berror = true;
MainMIDlet.instance.displayable.tf_stat.setString("receive error");
}
}

try {
if (dos != null) {
dos.close();
}
if (dis != null) {
dis.close();
}
if (serverHc != null) {
serverHc.close();
}
} catch (IOException ex3) {
}


服务器代码:

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
DataInputStream dis = new DataInputStream(request.getInputStream());
System.out.println(dis.readUTF());

DataOutputStream dos = new DataOutputStream(response.getOutputStream());
dos.writeUTF("Hello,this is server");

dos.flush();
dos.close();
dis.close();
}

问题出在哪儿能,请大家帮我看看,谢谢.


建议用一个新线程做


UP,结贴散分中。。。


检查一下Server收到Client的消息了吗?然后才好判定


发送完毕就关闭再打开接收的!


↑返回目录
前一篇: 为何calendar取得的当前月份会少一个月??
后一篇: 网络问题,客户端老是抛出UTFDataFormatException异常