【发布时间】:2013-05-30 14:06:25
【问题描述】:
所以我得到了一个 Server.jar 文件,它运行一个井字游戏服务器。 我现在应该做的是通过 TCP Socket 连接到这个服务器,然后 发送 HTTP 请求(例如“GET /game/ HTTP/1.1”),并接收 tictactoe 字段。
现在我似乎能够连接到服务器,并且还发送了第一个请求。 然而,我的第二个 out.write 似乎要么被忽略,要么导致异常。 我不明白为什么...服务器似乎也没有响应第二条消息/请求。
Socket sock;
try
{
sock = new Socket("127.0.0.1",8080);
System.out.println("Connection established at "+sock.toString());
Scanner in = new Scanner(sock.getInputStream());//Step 2.
PrintWriter out =new PrintWriter(sock.getOutputStream(),true);//Step 2.
out.println("GET /game/ HTTP/1.1\nHost: 127.0.0.1\nConnection: keep-alive\n\n");
String test ="";
while( (in.hasNext())== true)
{
test = test + in.nextLine();
}
System.out.println(test);
//This one is ignored somehow.
out.println("GET /game/gamenumber HTTP/1.1\nHost: 127.0.0.1\n\n");
while( (in.hasNext())== true)
{
test = test + in.nextLine();
}
System.out.println(test);
out.close();
sock.close();
}
catch (IOException e)
{
System.out.println("Failed");
e.printStackTrace();
}
注意:我没有直接访问Servers Source Code的权限,也不允许使用HTTPURLCONNECTION。
【问题讨论】:
-
' 或导致异常' - 那么它是否会导致异常?如果是这样,请发布堆栈跟踪(并请显示您的
catch块... -
java.net.SocketException:软件导致连接中止:套接字写入错误
-
你应该使用
Scanner和PrintWriter,这样更容易处理。 (甚至是 HttpURLConnection 类) -
不,我必须在没有 HTTP URL 连接类的情况下这样做......
-
您的服务器可以通过网络浏览器访问吗?
标签: java sockets networking communication bufferedwriter