可行吗? <%
String result=null;
Listen listen = new Listen();
listen.Listen();
while(result==null){
result = listen.getstring();
}
result = listen.getstring();
out.write(result,0,result.length());
%>listen是我自己写的一个服务端,不过运行到listen.Listen();的时候就报错了
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: An exception occurred processing JSP page /test.jsp at line 3027: <%
28: String result=null;
29: Listen listen = new Listen();
30: listen.Listen();
31:
32: while(result==null){
33: result = listen.getstring();
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:404)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause java.net.BindException: Address already in use: JVM_Bind
java.net.PlainSocketImpl.socketBind(Native Method)
java.net.PlainSocketImpl.bind(PlainSocketImpl.java:359)
java.net.ServerSocket.bind(ServerSocket.java:319)
java.net.ServerSocket.<init>(ServerSocket.java:185)
java.net.ServerSocket.<init>(ServerSocket.java:97)
socket.Listen.Listen(Listen.java:24)
org.apache.jsp.test_jsp._jspService(test_jsp.java:91)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.求教public class Listen extends Thread{
static BufferedReader in;
public static String str;
public void Listen( ) throws IOException
{
ServerSocket s = new ServerSocket(6666);
Socket socket = s.accept();
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
start();
}
public String getstring(){
return str;
}
public void run(){
try{
while(true){
str = in.readLine();
if(str.equals("22")){
break;
}
} }catch(IOException e){
e.printStackTrace();
}finally{
//System.out.println("close io");
}
}}
String result=null;
Listen listen = new Listen();
listen.Listen();
while(result==null){
result = listen.getstring();
}
result = listen.getstring();
out.write(result,0,result.length());
%>listen是我自己写的一个服务端,不过运行到listen.Listen();的时候就报错了
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: An exception occurred processing JSP page /test.jsp at line 3027: <%
28: String result=null;
29: Listen listen = new Listen();
30: listen.Listen();
31:
32: while(result==null){
33: result = listen.getstring();
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:404)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause java.net.BindException: Address already in use: JVM_Bind
java.net.PlainSocketImpl.socketBind(Native Method)
java.net.PlainSocketImpl.bind(PlainSocketImpl.java:359)
java.net.ServerSocket.bind(ServerSocket.java:319)
java.net.ServerSocket.<init>(ServerSocket.java:185)
java.net.ServerSocket.<init>(ServerSocket.java:97)
socket.Listen.Listen(Listen.java:24)
org.apache.jsp.test_jsp._jspService(test_jsp.java:91)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.求教public class Listen extends Thread{
static BufferedReader in;
public static String str;
public void Listen( ) throws IOException
{
ServerSocket s = new ServerSocket(6666);
Socket socket = s.accept();
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
start();
}
public String getstring(){
return str;
}
public void run(){
try{
while(true){
str = in.readLine();
if(str.equals("22")){
break;
}
} }catch(IOException e){
e.printStackTrace();
}finally{
//System.out.println("close io");
}
}}
地址已经被占用改下端口应该就可以了
但是如果不不加
30: listen.Listen();
就可以运行的,这其中是怎么个道理呢?我加载页面的时候可以开启socket监听吗?谢谢
28: String result=null;
29: ServerSocket s = new ServerSocket(6666);
30: Socket socket = s.accept();改成上面的代码的话,到29行也就报错了,错误一样
String result=null;
ServerSocket s = new ServerSocket(6666);
Socket socket;
while(socket=s.accept())
{
} server 端应该一直在监听