Java网络编程之TCP通信(2)

public class SocketServer
{
    public static void main(String[] args) throws IOException
    {
        ServerSocket server=new ServerSocket(11000);
        Socket client=server.accept();
        PrintWriter out=new PrintWriter(client.getOutputStream(),true);
        out.println("你好!");
        server.close();
    }
}

  然后打开IE浏览器,在地址中输入:11000/(192.168.1.120为本机IP地址),结果显示为:

Java网络编程之TCP通信

  在正常的应用中,浏览器是向Tomacat服务器发出请求,以得到网页图片等资源。而tomca就是用Java写的服务器端软件。

  现在我们编写服务器端为:

public class SocketServer
{
    public static void main(String[] args) throws IOException
    {
        ServerSocket server=new ServerSocket(11000);
        Socket client=server.accept();
        PrintWriter out=new PrintWriter(client.getOutputStream(),true);
        BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
        String line=null;
        while((line=in.readLine())!=null)
            System.out.println(line);
        out.println("你好!");
        server.close();
    }
}

  然后在利用浏览器访问,可以看到浏览器(客户端)发给服务器端的请求头数据为:

  利用上述原理,我们可以自己编写类似IE的浏览器端(客户端)软件。首先在Tomcat的安装目录C:\apache-tomcat-7.0.62\webapps\myweb中添加一个demo.html资源,然后编写客户端,代码如下:

public class ClientDemo
{
    public static void main(String[] args) throws UnknownHostException, IOException
    {
        Socket s=new Socket("192.168.1.120",8080);
        PrintWriter out=new PrintWriter(s.getOutputStream(),true);
       
        //将请求头发给服务器
        out.println("GET /myweb/demo.html HTTP/1.1");
        out.println("Accept:*/*");
        out.println("Host: 192.168.1.120:11000");
        out.println("Connection: Keep-Alive");
       
        //输出空行,此步骤不可少
        out.println();
        BufferedReader in=new BufferedReader(new InputStreamReader(s.getInputStream()));
        String line=null;
        //返回服务器的响应文件
        while((line=in.readLine())!=null)
        {
            System.out.println(line);
        }
        s.close();
    }
}

  接下来,启动Tomcat。即双击C:\apache-tomcat-7.0.62\bin中startup.bat文件。然后运行上述客户端代码,此时可以看到Tomacat返回的响应数据:

Java网络编程之TCP通信

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/b23aabf4463df43258b17c7c2231ecfa.html