关于应用层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};

原文地址:https://www.cnblogs.com/pacexdong/p/11442349.html

时间: 2024-10-10 01:03:19

关于应用层socket网络通信简单的理解的相关文章

socket --自己简单的理解

一,网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输. 在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机. 而TCP层则提供面向应用的可靠(tcp)的或非可靠(UDP)的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的. 目前较为流行的网络编程模型是客户机/服务器(C/S)结构.即通信双方一方作为服务器等待客户提出请求并予以响应.客户则

python速成第二篇(小爬虫+文件操作+socket网络通信小例子+oop编程)

大家好,由于前天熬夜写完第一篇博客,然后昨天又是没休息好,昨天也就不想更新博客,就只是看了会资料就早点休息了,今天补上我这两天的所学,先记录一笔.我发现有时候我看的话会比较敷衍,而如果我写出来(无论写到笔记本中还是博客中,我都有不同的感觉)就会有不同的想法,我看书或者看资料有时候感觉就是有一种惰性,得过且过的感觉,有时候一个知识想不通道不明,想了一会儿,就会找借口给自己说这个知识不重要,不需要太纠结了,还是去看下一个吧,然后就如此往复下去,学习就会有漏洞,所以这更加坚定了我写博客来记录的想法.

JavaSE入门学习47:Socket网络通信编程(一)

今天既然我们学习Java的Socket网络通信编程,那么在我们的现实生活中那些是Socket编程的应用呢?可以想象 我们最常用的聊天工具软件QQ就是,当然MSN也是啦. 一网络基础知识 两台计算机通过网络进行通信的必要条件: 1)IP地址 2)网络协议 3)端口号 两台计算机网络通信示意图: (1)TCP/IP协议 1)TCP/IP协议是目前世界上应用最为广泛的协议,是以TCP和IP为基础的不同层次上多个协议的集合,也称 TCP/IP协议族或TCP/IP协议栈. 2)TCP:Transmissi

Linux下C语言多线程,网络通信简单聊天程序

原文:Linux下C语言多线程,网络通信简单聊天程序 功能描述:程序应用多线程技术,可是实现1对N进行网络通信聊天.但至今没想出合适的退出机制,除了用Ctr+C.出于演示目的,这里采用UNIX域协议(文件系统套接字),程序分为客户端和服务端.应用select函数来实现异步的读写操作. 先说一下服务端:首先先创建套接字,然后绑定,接下进入一个无限循环,用accept函数,接受“连接”请求,然后调用创建线程函数,创造新的线程,进入下一个循环.这样每当有一个新的“连接”被接受都会创建一个新的线程,实现

C#Socket 网络通信异步处理 SocketAsyncEventArgs

C#Socket 网络通信异步处理 SocketAsyncEventArgs 异步套接字操作 1.服务端简单实现: public partial class Form_Server : Form { private Socket socket; public Form_Server() { InitializeComponent(); } private void Form_Server_Load(object sender, EventArgs e) { try { //获取本地ip地址 IP

django简介,安装,文件介绍,三板斧(render,HttpResponse,redirect)HTTP协议,用socket实现简单版web框架,用wsgiref,jinja2,pymysql实现Django运行流程

1.web应用(https://www.cnblogs.com/Dominic-Ji/p/9167438.html) c/s,b/s架构c/s:客户端 服务端b/s:浏览器 服务器?   2.HTTP协议: 超文本传输协议 四大特性: 1.基于TCP/IP作用在应用层之上的协议,底层实现仍为socket 2.基于请求响应:通信一定是从客户端开始,服务器端接收到客户端一定会做出对应响应 3.无状态:协议不对任何一次通信状态和任何数据做保存 4.无连接:一次连接只完成一次请求-响应,请求-响应完毕后

用Socket来简单实现IIS服务器

刚刚接触ASP.NET编程,为了更好的屡清楚服务器的处理过程,就用Socket模拟服务器来处理请求.用Socket来模拟服务器的时候,同样是自己来封装一些对应的类文件.包括 HttpRequest.HttpResponse.HttpContext.HttpApplication.IHttpHandel.主要的执行流程是:先用Socket来创建一个简单的服务器,进行监听,当监听到请求后将请求交给处理程序去处理,应用程序中根据请求的是静态资源还是动态资源做出不同的处理.然后通过Socket对象将响应

特殊权限简介(简单的理解)

特殊权限: suid:运行程序时,相应的进程的属主是程序文件自身的属主,而不是启动者. chmod u+s(u-s) file sgid:运行某个程序时,对应进程的属组是程序文件自身的属组,而不是启动者的所属的基本组.(常常与sticky一起使用,控制公共文件,组人能修改所有文件不能删除别人文件) chmod g+s(g-s) file sticky:在一个公共的目录中,每个人都可以创建文件,删除自己的文件,但不能删除别人的文件 chmod o+t filedir 特殊权限简介(简单的理解),布

关于Socket编写简单聊天工具的总结(原创)

这段时间再看socket编程,虽然现在是刚刚接触,但是还是忍不住想写一篇总结,来激励自己努力学习,写的不好的地方,还请大家指教啊! 下面针对一个简单的发送消息和文件的程序说说吧.   首先是服务器需要准备二个Socket和二个Thread如下: //和客户机进行通信 private Socket sckCommit; //监听客户机 private Socket sckListen; private Thread thdListen; private Thread thdCommit; 对客户机