当前页面: 开发资料首页 → 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的消息了吗?然后才好判定
发送完毕就关闭再打开接收的!