java socket 编程实现客户端和服务端接收信息

本文介绍了Java Socket编程在TCP/IP四层模型下如何实现客户端和服务端的通信。详细讲解了TCP的三次握手过程,并提供了客户端和服务器端的代码实现,包括数据的发送和接收。此外,还提及了InetAddress类的一些常用API。

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

java socket 编程,实现客户端和服务端接收信息

#学习笔记/编程/socket

tcp/IP四层模型

  1. 链路层:数据物理层,光纤,网线之类
  2. 网络层:用于将传输的数据进行分组,分配到相应的计算机或端口
  3. 传输层:网络之间进行通信
  4. 应用层:应用程序

常见网络通信协议

网络双方必须同时遵守才能进行数据交换

UDP

  1. 数据源和目的地封装在数据包中
  2. 数据包大小<64k
  3. 安全性差,速度快,面向无连接,容易丢包,用于传输即时性数据,比如视频,音频;

TCP

通过三次握手后形成通道,再传输数据,安全性较高。

三次握手
  1. 客户端发送连接请求,等待服务器确认
  2. 服务器向客户端发送连接响应
  3. 客户端再向服务端发连接确认,连接形成。
网络知识
  1. IPV4:32位二进制数
  2. IPV6:128位二进制数,分成8组十六进制
  3. 端口号:进程占用的地址,由两个字节构成(0-65535)
    操作系统会为网络软件分配随机端口号/或网络软件申请固定端口号。(1024之前的端口不可使用)
    常用端口: 80(网络端口),3306(mysql),1521(oracle),8080(Tomcat)

TCP通信程序流程

通信前

  1. 服务端监听请求
  2. 客户端主动连接,连接包含IO对象,一个数据交互要使用四个io流对象

下面以客户端和服务器端互发消息为例

客户端

  1. 创建客户端对象,绑定服务器IP地址和端口号 Socket(String host , int port);
  2. 使用客户端对象中的getOutputStream()获取网络字节输出流对象
  3. 使用网络字节输出流的write方法给服务器发送数据
  4. 获取网络字节输入流对象
  5. 使用read方法读服务器回来的数据
  6. 释放资源;
实现代码
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;

public class TCPClient {
   
    public static void main(String args
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值