更新时间:2022-07-29 来源:黑马程序员 浏览量:
在开发TCP程序时,首先需要创建服务器端程序。JDK的java.net包中提供了一个ServerSocket娄,该类的实例对象可以实现一个服务器端的程序。通过查阅API文档可知,ServerSocket类提供了多个构造方法,接下来就对ServerSocket的构造方法进行详细讲解。
(1) ServerSocket()
使用该构造方法在创建ServerSocket对象时并没有指定端口号,因此该对象不监听任何端口,不能直接使用,使用时还需要调用bind(SocketAddress
endpoint)方法将其绑定到指定的端口号上。
(2)ServerSocket(int port)
使用该构造方法在创建ServerSocket对象时,可以将其绑定到指定的端口号上。如果port参数值为0,此时系统就会分配一个未被其他程序占用的端口号。由于客户端需要根据指定的端口号来访问服务器端程序,因此端口号随机分配的情况并不常用,通常都会给服务器端指定一个端口号
(3)ServerSocket(int port,int backlog)
该构造方法就是在第2个构造方法的基础上,增加了一个backlog参数。该参数用于指定在服务器忙时,可以与之保持连接请求的等待客户端数量,如果没有指定这个参数,默认为50。
(4)ServerSocket(int port, int backlog, InetAddress bindAddr)
该构造方法就是在第3个构造方法的基础上,指定了相关的IP地址,这种情况适用于计算机上有多块网卡和多个IP的情况,使用时可以明确规定ServerSocket在哪块网卡或IP地址上等待客户端的连接请求。显然,对于一般只有一块网卡的情况,就不用专门指定该参数。
在以上介绍的构造方法中,第2个构造方法是最常使用的。了解了如何通过ServerSocket的构造方法创建对象,接下来学习ServerSocket的常用方法,如下表所示。
ServerSocket对象负责监听某台客户端计算机的端口号,在创建ServerSocket对象后,需要继续调用该对象的accept()方法,接收来自客户端的请求。当执行了accept()方法之后,服务器端程序会发生阻塞,直到客户端发出连接请求,accept()方法才会返回一个Scoket对象用于和客户端实现通信,程序才能继续向下执行。
【AI设计】北京143期毕业仅36天,全员拿下高薪offer!黑马AI设计连续6期100%高薪就业
2025-09-19【跨境电商运营】深圳跨境电商运营毕业22个工作日,就业率91%+,最高薪资达13500元
2025-09-19【AI运维】郑州运维1期就业班,毕业14个工作日,班级93%同学已拿到Offer, 一线均薪资 1W+
2025-09-19【AI鸿蒙开发】上海校区AI鸿蒙开发4期5期,距离毕业21天,就业率91%,平均薪资14046元
2025-09-19【AI大模型开发-Python】毕业33个工作日,就业率已达到94.55%,班均薪资20763元
2025-09-19【AI智能应用开发-Java】毕业5个工作日就业率98.18%,最高薪资 17.5k*13薪,全班平均薪资9244元
2025-09-19