我写了一个servlet, 当用户通过url调用用servlet时,servlet会通过udp通讯向用户的一个client程序发送数据。现在当单个用户发送请求时,程序正常,发送数据正常。
但是当多个用户同时请求时,就有问题了,服务器上提示:ip Address cannot bind,in use.
书上不是说,默认情况下,servlet是多线程的吗。这是怎么回事。望高人解决,帮我改一下代码,不胜感谢,急啊(因为我是新手)。代码如下:
public void service(HttpServletRequest req, HttpServletResponse res)
throws IOException, ServletException 
  {
   
       //发送数据到Client,指定端口号/////////////////////////////////////////////
DatagramSocket cli=null;
String to=null;  
String reqString = req.getQueryString();    //读入参数

//System.out.println(reqString); 

if(reqString == null) {
to = "提示:";
}
else {
to=getRightString(reqString,"to=") ;    //取得要发的数据
}
try
 {

  byte sb[]=new byte[512];
  String sen="show/to="+to;  //向client发送
  sb=sen.getBytes();
  String ip=GetUserIP(to) ; 
  if (ip==null) return ;
  DatagramPacket pac=new DatagramPacket(sb,sb.length,InetAddress.getByName(ip),1111);
  cli=new DatagramSocket(2222); 
  cli.send(pac); 
  }
  catch(SocketException se)
  {
se.printStackTrace();
  }
  catch(IOException ie)
  {
ie.printStackTrace();  
  }
 catch (Exception e) 
  {
 e.printStackTrace();
  }
  finally {
   if (cli != null) {
cli.close() ;
cli.disconnect() ;
   }
  }

}}