写一个android应用程序,使用UDP与server交互,给用户提供一个文本框输入一个数学算式,点击提交按钮,然后显示答案。这里假定用户永远输入的算式都合法,比如133+122server的代码如下:
import java.net.*;
import java.io.*;
public class UDPServer{
public static void main(String args[]){
DatagramSocket aSocket = null;
String m;
try{
aSocket = new DatagramSocket(9667);
// create socket at agreed port
byte[] buffer = new byte[1000];
while(true){
DatagramPacket request = new DatagramPacket(buffer, buffer.length);
aSocket.receive(request);
System.out.println("supply service");
m=new String(request.getData(),0,request.getLength());
int a=0;
int b=0;
int result=0;
for(int i=0;i<m.length();i++)
{
if(m.charAt(i)=='+')
{
a=Integer.valueOf(m.substring(0, i));
b=Integer.valueOf(m.substring(i+1, m.length()));
result=a+b;
}
if (m.charAt(i)=='-')
{
a=Integer.valueOf(m.substring(0, i));
b=Integer.valueOf(m.substring(i+1, m.length()));
result=a-b;
}
if (m.charAt(i)=='X')
{
a=Integer.valueOf(m.substring(0, i));
b=Integer.valueOf(m.substring(i+1, m.length()));
result=a*b;
}
if (m.charAt(i)=='/')
{
a=Integer.valueOf(m.substring(0, i));
b=Integer.valueOf(m.substring(i+1, m.length()));
result=a*b;
}
}
String r=String.valueOf(result);
byte[] rep=r.getBytes();
DatagramPacket reply = new DatagramPacket(rep, rep.length,
request.getAddress(), request.getPort());
aSocket.send(reply);
}
}catch (SocketException e){System.out.println("Socket: " + e.getMessage());
}catch (IOException e) {System.out.println("IO: " + e.getMessage());
}finally {if(aSocket != null) aSocket.close();}
}
}
import java.net.*;
import java.io.*;
public class UDPServer{
public static void main(String args[]){
DatagramSocket aSocket = null;
String m;
try{
aSocket = new DatagramSocket(9667);
// create socket at agreed port
byte[] buffer = new byte[1000];
while(true){
DatagramPacket request = new DatagramPacket(buffer, buffer.length);
aSocket.receive(request);
System.out.println("supply service");
m=new String(request.getData(),0,request.getLength());
int a=0;
int b=0;
int result=0;
for(int i=0;i<m.length();i++)
{
if(m.charAt(i)=='+')
{
a=Integer.valueOf(m.substring(0, i));
b=Integer.valueOf(m.substring(i+1, m.length()));
result=a+b;
}
if (m.charAt(i)=='-')
{
a=Integer.valueOf(m.substring(0, i));
b=Integer.valueOf(m.substring(i+1, m.length()));
result=a-b;
}
if (m.charAt(i)=='X')
{
a=Integer.valueOf(m.substring(0, i));
b=Integer.valueOf(m.substring(i+1, m.length()));
result=a*b;
}
if (m.charAt(i)=='/')
{
a=Integer.valueOf(m.substring(0, i));
b=Integer.valueOf(m.substring(i+1, m.length()));
result=a*b;
}
}
String r=String.valueOf(result);
byte[] rep=r.getBytes();
DatagramPacket reply = new DatagramPacket(rep, rep.length,
request.getAddress(), request.getPort());
aSocket.send(reply);
}
}catch (SocketException e){System.out.println("Socket: " + e.getMessage());
}catch (IOException e) {System.out.println("IO: " + e.getMessage());
}finally {if(aSocket != null) aSocket.close();}
}
}
解决方案 »
- 大家帮我看看我这个写法要怎么提交数据?菜鸟,求帮助。
- 如何实现applet和servlet通讯读取服务器端的指定的文件
- 这个是什么原因org.springframework.jdbc.UncategorizedSQLException
- struts太不稳定了。什么东西呀!
- JSP连接MSSQL数据库的时候,TOMCAT里出现这个错误,请帮忙下!
- 求教选中多条记录一次性删除的做法?
- 如何取文本域里每一行的值?
- 参数传递到底是传值还是传地址
- 急啊,拜托了
- 我想删掉安装目录里的文件,可是老提示我某些。JAR文件正在使用,如何全部清除WEBLOGIC6。1安装目录的文件?我在系统起来以后,关掉所有
- tomcat 能不能自动编译Java文件成class文件
- 请教:
Activity。在哪里