TCP流套接字编程(模拟多个客户端与服务器交互)

本文介绍了TCP中的ServerSocket和SocketAPI,包括构造方法和常用方法。讨论了TCP连接的短连接和长连接概念,指出它们在建立连接、关闭连接耗时和应用场景上的差异。接着,通过示例展示了如何使用TCP实现聊天室功能,客户端与服务端的交互过程。最后,提到了多线程和线程池在处理多个客户端连接时的应用,以解决并发连接的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、ServerSocket API

1.1、ServerSocket构造方法

1.2、ServerSocket方法

二、Socket API 

2.1、socket构造方法 

2.2、socket方法

三、TCP 中的长短连接

四、示例 

实现聊天室功能

五、存在的问题 


一、ServerSocket API

ServerSocket 是创建TCP服务端Socket的API。

1.1、ServerSocket构造方法

方法签名 方法说明
ServerSocket(int port) 创建一个服务端流套接字Socket,并绑定到指定端口

1.2、ServerSocket方法

方法签名 方法说明
Socket accept() 开始监听指定端口(创建时绑定的端口),有客户连接之后,返回一个服务端Socket对象,并基于该Socket建立与客户端的连接,否则阻塞等待
void close() 关闭此套接字

二、Socket API 

Socket是客户端Socket,或服务端中接收到客户端建立连接(accpet方法)的请求后,返回的服务端Socket。

不管是客户端还是服务端Socket,都是双方建立连接以后,保存的对端信息,以及用来与对方收发数据的。

2.1、socket构造方法 

方法签名 方法说明
Socket(String host,int port) 创建一个客户端流套接字Socket,并与对应IP主机上,对应的端口的进程建立连接。

2.2、socket方法

方法签名 方法说明
InetAddress getInetAddress() 返回套接字所连接的地址
InputStream getInputStream() 返回此套接字的输入流
OutputStream getOutputStream() 返回此套接字的输出流

三、TCP 中的长短连接

TCP发送数据时,需要先建立连接,什么时候关闭连接就决定是短连接还是长连接。

  1. 短连接:每次接收到数据并返回响应后,都关闭连接,即是短连接。也就是说短连接只能一次收发数据
  2. 长连接:不关闭连接,一致保持连接状态,双方不停的收发数据,即是长连接。也就是说长连接能够多次收发数据。 

对比以上长短连接,两者区别如下:

  • 建立连接、关闭连接的耗时:短连接每次请求、响应都需要建立连接,关闭连接;而长连接只需要建立一次连接即可,之后的请求、响应都可以直接传输。相对于说建立连接、关闭连接也是需要耗时的,长连接效率比较高。
  • 主动发送请求不同:短连接一般是客户端主动向服务端发起请求;而长连接不论是客户端还是服务端都可以向对方发起请求。
  • 两者使用的场景不同:短连接适用于客户端请求频率不高的场景,如浏览网页等。长连接使用于客户端与服务端通信频繁的场景,如聊天室等。

四、示例 

实现聊天室功

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值