zoukankan      html  css  js  c++  java
  • 关于应用层socket网络通信简单的理解

    1.socket可以认为是我们平时交流用的电话,一种通信工具

    2.通信协议是我们用来交流的语言。大致主流通信协议有两种:TCP和UDP。TCP通信时会进行三次握手,传输数据安全可靠但速度较低。UDP不握手直接发,所以速度快但数据不保

    证,我们平时网上看视频都是UDP,传输快,偶尔出现视频抖动或者花频很短暂但不影响我们观赏。

    3.socket通信需要服务器端和客户端,服务器端先创建一个socket,把自己的IP和端口和通信协议设置好,端口最好在50000以后,这样不影响其它进程,也不会冲突,客户端自己也创

    建一个socket,然后连接服务器,服务器接收到客户端的请求后马上再创建一个专门和这个客户端通信的socket,这样通信就成功了。

    4.若有多个客户端连接,发送数据就需要区分客户端,这里用键值表的方法可以通过键来快速找到值去匹配发送。

    5.发送消息,文件这样不同的数据时,需要加头码区分,即发送缓存前需要把头码再插进去,数组操作比较麻烦,这里可以使用集合来搞定,

      集合在功能上,数组能实现的所有功能,集合都能实现,反之,集合能实现的某些功能,数组难以实现。集合不定长:保存的数据数量,可以在程序的执行过程中,不断的发生变  化(占用内存多,遍历速度慢)。

      List集合:创建:定义,赋值,初始化器   List<int>nums=new List<int>();nums没有元素长度默认为0,之后可以被改变,可以添加或删除元素。

      添加元素:向集合的末尾,添加一个新元素   变量名.Add(要添加的数据)。

      插入元素:向集合的指定位置,插入一个新的元素   变量名.Instert(索引,要插入的数据)。

      删除元素:变量名.RemoveAT(索引);删除指定索引位置的元素   变量名.Remove(数据);删除集合中与填写的数据相同的第一个匹配项。

      修改元素:修改集合中某个元素的值     变量名【索引】=值;  读取和修改元素与数组的操作方式完全一致。

      获取元素数量:获取集合的长度    变量名.lount

      变量名=new List<数据类型>();赋值后长度可以变化       合并书写:List<数据类型>变量名=new List<数据类型>();

      初始化器:变量名=new List<数据类型>{元素1,元素2,.......,元素n};

  • 相关阅读:
    kerberos认证原理---讲的非常细致,易懂(转发)
    CDH安装之篇四:启用Kerberos认证(转发)
    RabbitMQ和Kafka(转发)(待续)
    Kafka的Log存储解析(转发)(待续)
    滴滴passport设计之道:帐号体系高可用的7条经验(含PPT)(转发)(待续)
    淘宝的消息中间件(2013) (转发)(待续)
    设计消息中间件时我关心什么?(解密电商数据一致性与完整性实现,含PPT)(转发)
    一种提高微服务架构的稳定性与数据一致性的方法(转发)
    大型网站架构系列:消息队列(转发)
    Kafka实战解惑(转发)
  • 原文地址:https://www.cnblogs.com/pacexdong/p/11442349.html
Copyright © 2011-2022 走看看