当前位置: 代码迷 >> J2SE >> 关于Socket的编程题!解决方案
  详细解决方案

关于Socket的编程题!解决方案

热度:61   发布时间:2016-04-24 12:16:24.0
关于Socket的编程题!
用Eclipse写一个程序 ,把程序启动.例如程序的参数是新浪的IP(先在命令窗口中ping出来)和端口 然后我在浏览器中打localhost就直接跳转到新浪的网页上并把信息以Hex的形式打印在控制台上。
  (有点跟IE浏览器浏览器连接设置里面的局域网(LAN)设置大致相同)

------解决方案--------------------
只要监听本机80端口就可以通过localhost访问,
在服务端通过java.net.url取得某地址的inputstream
把它写入socket的outputstream就可以了。

你总不会是想通过socket自己组织个http协议直接发送给新浪吧。
Java code
import java.io.*;import java.net.*;public class SocketTest{    public static void main(String[] args) throws MalformedURLException, IOException    {        SocketTest server = new SocketTest();        server.await();    }    public void await() throws MalformedURLException, IOException    {        ServerSocket serverSocket = null;        try        {            serverSocket = new ServerSocket(80);        }        catch (IOException e)        {            e.printStackTrace();            System.exit(1);        }        while (true)        {            Socket socket = null;            InputStream input = new URL("http://www.sina.com").openStream();            OutputStream output = null;            try            {                socket = serverSocket.accept();                output = socket.getOutputStream();                int temp;                while((temp=input.read())>0)                {                    output.write(temp);                    System.out.print(Integer.toHexString(temp)+" ");                }                output.flush();                output.close();                socket.close();            }            catch (Exception e)            {                e.printStackTrace();                continue;            }        }    }}
  相关解决方案