Java TCP通信

Java:TCP通信

此博客为概念知识,其余实例代码请参考我的其他博客:

Java 多线程Sockethttps://blog.csdn.net/qq_39004632/article/details/93599058
Java Socket文件传输https://blog.csdn.net/qq_39004632/article/details/93599896
Java TCP传输对象https://blog.csdn.net/qq_39004632/article/details/93602381

Socket:是网络驱动层提供给应用程序编程的接口和一种数据发送、接收机制。Socket由应用程序创建,与网络驱动层建立绑定机制,告诉网络驱动层当前应用程序所对应的IP地址和端口号。

Socket的方法:
public Socket(String host, int port):创建套接字并将其连接到指定主机上的指定端口号。
public Socket(InetAddress address, int port):创建套接字并将其连接到指定 IP 地址的指定端口号。
public Socket(String host, int port, InetAddress localAddr, int localPort):创建套接字并将其连接到指定主机上的指定端口号。localAddr和localPort表示当前客户端的IP和端口,此方法适合客户端有多个网卡的情况。
public Socket(InetAddress address, int port, InetAddress localAddr,int localPort):创建套接字并将其连接到指定 IP 地址的指定端口号。localAddr和localPort表示当前客户端的IP和端口,此方法适合客户端有多个网卡的情况。
inetAddress getInetAddress():返回远程服务器的IP地址
int getPort():返回远程服务器的端口
inetAddress getLocalAddress():返回本地客户端的IP地址
int getLocalPort():返回本地客户端的端口
boolean isClosed():当前套接字是否已经关闭
boolean isConnected():当前客户端与服务器是否处理连接状态。
boolean isBound():当前套接字是否已经成功绑定到某个地址
void shutdownInput() throws IOException:关闭输入流。发送到套接字的输入流端的任何数据都将被确认然后被静默丢弃。 此时再从套接字输入流读取内容将返回 EOF。
void shutdownOutput() throws IOException:关闭输出流。对于 TCP 套接字,任何以前写入的数据都将被发送,并且后跟 TCP 的正常连接终止序列(FIN标志+序列号)。 此时在向套接字的输出流写入数据,则该流将抛出 IOException。

ServerSocket的方法:
public ServerSocket(int port):创建绑定到特定端口的服务器套接字。 如果port为0,由操作系统分配一个端口(匿名端口)。
public ServerSocket(int port, int backlog):创建服务器套接字并将其绑定到指定的本地端口号。backlog表示服务器忙时所指定的最大等待连接数。
public ServerSocket(int port, int backlog, InetAddress bindAddr):bindAddr表示套接字所绑定的计算机IP地址,此构造方法适合一台计算机有多个网卡的情况。
public ServerSocket():此方法创建的Socket不与任何本地端口绑定,需要通过调用bind()方法与特定端口绑定。无参构造方法的主要用途是:允许服务器在绑定到特定端口之前,先设置ServerSocket的选项,因为一旦服务器与端口绑定,就不能设置ServerSocket的选项了。ServerSocket serverSocket=new ServerSocket();serverSocket.setReuseAddress(true);
serverSocket.bind(new InetSocketAddress(9000));
Socket accept() throws SocketException:监听并接受客户端到此套接字的连接请求,并为客户端的请求创建一个与之对应的Socket对象 。
void close() throws SocketException:释放ServerSocket占用的端口,断开与所有客户端的连接。
InetAddress getInetAddress() throws SocketException:返回此服务器套接字的本地地址
int getLocalPort() throws SocketException:返回此套接字的监听端口
boolean isClosed():只有执行了close(),此方法才返回true。
boolean isBound():判断服务器是否曾经与端口成功绑定过。

TCP协议Socket通信过程:
在这里插入图片描述
TCP协议Socket通信过程:
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值