ServerSocket类的常用方法

Posted guoyansi19900907

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ServerSocket类的常用方法相关的知识,希望对你有一定的参考价值。

1.accept:侦听并接受此套接字的连接;此方法在连接传入之前一直阻塞。

2.setSoTimeout(timeout)方法的作用时设置超时时间,通过指定超时timeout值启用/禁用超时功能,以ms为单位。

  必须在进入阻塞前调用这个方法,才能生效,一旦超时,程序会触发SocketTimeoutException异常;默认值是0即永远等待。

 

Server.java

package com.company.s7;

import java.io.IOException;
import java.net.ServerSocket;

public class Server 
    public static void main(String[] args) 
        try 
            ServerSocket serverSocket=new ServerSocket(8000);
            System.out.println(serverSocket.getSoTimeout());
            serverSocket.setSoTimeout(4000);
            System.out.println(serverSocket.getSoTimeout());
            System.out.println();

            System.out.println("begin "+System.currentTimeMillis());
            serverSocket.accept();
            System.out.println(" end "+System.currentTimeMillis());
        catch (IOException e)
            e.printStackTrace();
        
    

Client.java

package com.company.s7;

import java.io.IOException;
import java.net.Socket;

public class Client 
    public static void main(String[] args) 
        try 
            System.out.println("client begin "+System.currentTimeMillis());
            Socket socket=new Socket("localhost",8000);
            System.out.println("client end "+System.currentTimeMillis());
        catch (IOException e)
            e.printStackTrace();
            System.out.println("catch "+System.currentTimeMillis());
        
    

 

backlog参数含义:

技术图片

允许接受客户端连接请求的个数。

如果队列已满,则拒接该连接。

blacklog参数如果小于等于0,则使用默认值50;

以上是关于ServerSocket类的常用方法的主要内容,如果未能解决你的问题,请参考以下文章

InetAddress类的常用方法介绍

Java中String类的常用方法

Java高级编程--常用类之String类的常用方法

Java之System类的常用方法

得到Class类的几种方式与常用方法

[Java基础]Object类的常用方法