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};

  • 相关阅读:
    201521123080《Java程序设计》第6周学习总结
    201521123080《Java程序设计》第5周学习总结
    201521123080《Java程序设计》第3周学习总结
    201521123080《Java程序设计》第8周学习总结
    201521123080《Java程序设计》第7周学习总结
    git将代码回退到某个commit
    apollo配置动态生效
    git将本地强制推送到远程
    @Valid与@Validated
    springMVC+Mybatis(使用AbstractRoutingDataSource实现多数据源切换时)事务管理未生效的解决办法
  • 原文地址:https://www.cnblogs.com/pacexdong/p/11442349.html
Copyright © 2011-2022 走看看