TCP通信

                                                 TCP通信

目录

                                                 TCP通信

 1.ServerSocket

1.ServerSocket()

2.ServerSocket(int port)

3.ServerSocket(int port, int backlog)

4.ServerSocket(int port, int backlog, InetAddress bindAddr)

 2.Socket

1. Socket()

2.Socket(String host,int port)

3.Socket(InetAddress address, int port)


在JDK中提供了两个类用于实现TCP程序,一个是ServerSocket类,用于表示服器端,一个是Socket类,用于表示客户端。通信时,首先创建代表服务器端ServerSocket对象,该对象相当于开启一个服务,并等待客户端的连接,然后创建代表户端的Socket 对象向服务器端发出连接请求,服务器端响应请求,两者建立连接开始信。解释一下两者:

 1.ServerSocket

在开发TCP程序时,首先需要创建服务器端程序。而JDK的java.net 包中提供了一个 ServerSocket类,该类的实例对象可以实现一个服务器端的程序。通过查阅 API 文档可知,ServerSocket 类提供了多种构造方法。一些常用方法:

1.ServerSocket()

使用该构造方法在创建ServerSocket对象时并没有绑定端口号,这样的对象创建的服务器端没有监听任何端口,不能直接使用,还需要继续调用 bind(SocketAddressendpoint)方法将其绑定到指定的端口号上,才可以正常使用。

2.ServerSocket(int port)

使用该构造方法在创建ServerSocket对象时,就可以将其绑定到一个指定的端口号上(参数port就是端口号)。端口号可以指定为0,此时系统就会分配一个还没有被其他网络程序所使用的端口号。由于客户端需要根据指定的端口号来访服务器端程序,因此端口号随机分配的情况并不常用,通常都会让服务器端程!监听一个指定的端口号。

3.ServerSocket(int port, int backlog)

该构造方法就是在第二个构造方法的基础上,增加了一个backlog参数。该参数用于指定在服务器忙时,可以与之保持连接请求的等待客户数量,如果没有指定这个参数,默认为50。

4.ServerSocket(int port, int backlog, InetAddress bindAddr)

该构造方法就是在第三个构造方法的基础上,还指定了相关的IP地址,这种情况适用于计算机上有多块网卡和多个IP的情况,我们可以明确规定 ServerSocket在哪块网卡或 IP地址上等待客户的连接请求。显然,对于一般只有一块网卡的
情况,就不用专门的指定了。

上面的构造方法中,第二个构造方法是最常使用的。了解了如何通ServerSocket的构造方法创建对象,接下来学习一下ServerSocket 的常用方法,

 2.Socket

 ServerSocket对象可以实现服务端程序,但只实现服务器端程序还不能完成通信,此时还需要一个客户端程序与之交互。为此 JDK提供了一个Socket类,用于实现TCP客户端程序。通过查阅 API文档可知 Socket 类同样提供了多种构造方法,接下来就对Socket的常用构造方法进行详细讲解。

1. Socket()

使用该构造方法在创建Socket对象时,并没有指定IP地址和端口号,也就意味
着只创建了客户端对象,并没有去连接任何服务器。通过该构造方法创建对象后
还需调用 connect(SocketAddress endpoint)方法,才能完成与指定服务器端的
接,其中参数endpoint用于封装IP地址和端口号。

2.Socket(String host,int port)

使用该构造方法在创建Socket对象时,会根据参数去连接在指定地址和端口
运行的服务器程序,其中参数host接收的是一个字符串类型的IP地址。

3.Socket(InetAddress address, int port)

该方法在使用上与第二个构造方法类似,参数address用于接收一个InetAddress类型的对象,该对象用于封装一个IP地址。在上面Socket的构造方法中,最常用的是第一个构造方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值