socket通信(java实现)

一、关于socket

  我们的应用程序是基于操作系统上的,把数据提交到操作系统中。所有通信的底层都是socket,而且所有的语言都是具有socket功能的。
但是,所有语言的socket模块,底层其实都是c语言的socket。所以c语言的socket负责沟通操作系统的内核对接,对接网卡
在这里插入图片描述
  socket是一门原理,一门技术。Java可以实现socket,并将其封装成一个类
通过ip地址,数据打到网卡上,而网卡上的数据通过相应的端口号把数据发送到当前的进程中

二、TCP/IP五层模型(从下到上)

物理层,决定01比特流如何传输
链路层 决定数据在局域网如何传输
网络层 决定数据在广域网中如何传输
传输层 保证数据如何稳定传输的一层 比如TCP协议
应用层 应用层的任务是通过应用进程间的交互来完成特定网络应用,包含着各种协议

而socket解决了下面四层的封装。
在这里插入图片描述

三、socket解析

   网卡把数据变成bite数组,底层是socket负责解析为bite[]数组。
   物理层传输的是比特流。所谓的流,就是数组,比如比特流,就是bite[]。而底层socket的解析就是底层一段有01组成的数据,而这些数据上会有一定的位数记录着物理层,链路层,网络层和传输层协议,相应的位数在相应的层上解析数据。到了传输层会根据那种编码根据位数转换为数据让我们读取。而我们的应用层就是数据的输出部分。
   换成代码实现底层判断这个数组 bite[100],也是前多少位代表物理层协议,后多少位代表链路层,多少位代表网络层、传输层协议,但整个应用层部分是数据和协议交错在一起的。

四、socket代码实现

代码分成两个部分,服务端和客户端。

客户端

一般操作:
1、创建socket对象,填写socket要发送的ip和端口号,即发送给谁
2、获取用户的输入
3、将用户输入的数据写入到服务器,socket中

/**
 * 客户端
 * */
public class client {
   
    public static void main(String[] args) throws IOE
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值