森森快跑

走得累,走得苦,那是因为在走上坡路。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Java学习(六):Socket编程实例

Posted on 2015-03-31 23:30  森森快跑  阅读(169)  评论(0编辑  收藏  举报

      Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求。

Java已经简化了Socket的编程接口。Java提供了ServerSocket来对其进行支持。事实上当创建该类的一个实例对象并提供一个端口资源,就建立了一个固定位置可以让其他计算机来访问了,如:ServerSocket server=new ServerSocket(6789); 
      这里稍微要注意的是端口的分配必须是唯一的。因为端口是为了唯一标识每台计算机唯一服务的。另外端口号是从0到65535之间的,前1024个端口已经被TCP/IP作为保留端口,因此你所分配的端口只能是1024个之后的。

 

public class JavaTest 
{
    public static void main (String[] args) throws IOException
    {
        //定义一个ServerSocket监听在端口2222上 
        ServerSocket server = new ServerSocket(2222);
        //server尝试接收其他Socket的连接请求,server的accept方法是阻塞式的的
        Socket client = server.accept();
        BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
        PrintWriter out = new PrintWriter(client.getOutputStream()); 
        while(true) 
        { 
            String str = in.readLine();
            out.println("has receive the input: " + str);
            out.flush();
            if(str.equals("end"))
            {
                break;
            } 
        }
        client.close(); 
        server.close();
    }
}