嗨,我在 java 中遇到了与客户端在 Web 服务器上写入相关的问题。我正在使用以下代码,请在我错的地方帮助我
对于服务器类
import java.net.ServerSocket;
import java.net.Socket;
import java.io.InputStream;
import java.util.Scanner;
import java.io.InputStreamReader;
import java.io.BufferedReader;
public class Server
{
public static void main(String args[]){
try{
ServerSocket s = new ServerSocket(8080);
System.out.println("ashish");
Socket incoming = s.accept();
System.out.println("the status of the socket="+incoming.isConnected());
InputStream inStream = incoming.getInputStream();
InputStreamReader isr=new InputStreamReader(inStream);
BufferedReader br=new BufferedReader(isr);
String str=null;
while((str=br.readLine()).equals("exit")==false){
System.out.println(str);
}
System.out.println("System exit");
}catch(Exception e){
e.printStackTrace();
}
}
}
对于实际上是小程序的客户端类有以下代码
import java.applet.Applet;
import java.net.URL;
import java.net.HttpURLConnection;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
public class testApplet extends Applet
{
public void init(){}
public void start(){
try{
URL url = new URL("http://localhost:8080");
HttpURLConnection httpCon = (HttpURLConnection)url.openConnection();
httpCon.setDoOutput(true);
httpCon.setRequestMethod("PUT");
PrintWriter out = new PrintWriter( httpCon.getOutputStream());
out.print("Resource content\n");
out.print("exit");
out.close();
}catch(Exception e){
e.printStackTrace();
}
}
public void stop(){}
public void destroy(){}
}
现在,当我运行服务器时,服务器仅显示以下内容
PUT / HTTP/1.1
User-Agent: Mozilla/4.0 (Windows Vista 6.1) Java/1.6.0
Host: localhost:8080
Accept: text/html, image/gif. image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive
但是它没有写出我用 PrintWriter 的 out 对象写的内容,接下来进入等待状态
另一方面,小程序不会刚刚启动。当我关闭服务器程序时,小程序会给出以下异常
java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at sun.net.NetworkClient.doConnect(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.parseHTTP(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at java.net.HttpURLConnection.getResponseCode(Unknown Source)
at testApplet.start(testApplet.java:19)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
请告诉我怎么了