分享好友 最新资讯首页 最新资讯分类 切换频道
Socket的两种类型
2024-12-29 13:00
SOCKET
有两种类型:
 流式Socket(STREAM):
是一种面向连接的Socket,针对于面向连接的TCP服务应用,安全,但是效率低;
 数据报式Socket(DATAGRAM):
是一种无连接的Socket,对应于无连接的UDP服务应用.不安全(丢失,顺序混乱,在接收端要分析重排及要求重发),但效率高.
 
 UDP 数据包套接字的数据发送方式:
    将数据折成很多份,然后都发到对方去,但是对方接受到的数据的顺序不一样是发送的顺序,发送出去的数据不一定能顺利到达(丢包),接收方验证所有包齐全后,要重新按照包的组合顺序组建数据
  TCP流式套接字的数据发送方式:
     在发送数据前,会先经历TCP协议的三次握手协议来建立连接,然后通过连接有次序的将数据发送给接收方,接收方拿到数据后发告诉发送方,数据接收完毕.如果发送超时,那么发送方会再次发送数据.但是.因为连接一直在发送期间保持,所以比较占用资源
 
Socket一般应用模式 - 服务器端和客户端
Socket的通讯过程:
  服务器端:
     1.申请一个socket
 //创建一个监听客户端请求的套接字
 Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
     2.绑定到一个IP地址和一个端口上
 //创建IP对象
 IPAddress address = IPAddress.Parse(txtIP.text);
 //创建包含IP和Port的网络终结点对象
 IPEndPoint endPoint = new IPEndPoint(address,int.Parse(txtPort.Text.Trim().toString());
 //为监听套接字绑定端口
 server.Bind(endPoint);
     3.开启侦听,等待接授连接
 //开始监听,并设置监听队列的最大长度 10
 server.Listen(10);
 //接受客户端连接请求,并创建一个通信套接字,会阻断线程
 Socket sokMsg = server.Accept();
 
  客户端:
     1.申请一个socket
 Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Strem, ProtocolType.Tcp);
     2.连接服务器(指明IP地址和端口号)
 clinet.Connect(endpoint);
最新文章
Python中的人工智能编程是什么?
python是一门非常流行的编程语言,也是许多人工智能(ai)领域的首选语言。python可以轻松实现ai编程,其灵活性和易学性使其成为
一简单的Google API搜索例子
首先看一个Java代码的例子 需要两个jar的支持 commons-httpclient.jar commons-codec-1.3.jar import java.io.UnsupportedEncodi
Unreal Engine 4.16 发布说明
虚幻引擎 4.16 包含一些令人激动的新增渲染和动画功能,针对移动和游戏机平台进行了大量的性能改进,还包含无数产品周期的质量增
ios15越狱安装未签名软件 越狱免签名插件
众所周知,现在网络上很多第三方软件都是通过利用苹果证书的方式来安装使用。但与此同时,也普遍面临证书失效的问题。一旦证书失
Wireshark菜单栏中跳转菜单介绍
Wireshark跳转菜单如图1所示。  图1 跳转菜单图1中的第一部分选项“转至分组”和“Go To Linked Packet”的作用是在Wireshark主
SEVENTEEN李知勋回应“AI写歌”争议:都是“人”写的!
​男团SEVENTEEN成员李知勋(Woozi)对近来的“AI写歌”争议进行了回应。据外媒报道称:本月14日,男团SEVENTEEN成员李知勋通过
Python爬取并分析B站最热排行榜,我发现了这些秘密
现在大家的生活中,已经越来越离不开B站了,2020年的第一季度,B站月活跃用户达到了1.72亿,日活跃用户也已经突破了5000万个用户
pypy真的能让python比c还快?
最近 “pypy为什么能让python比c还快” 刷屏了,原文讲的内容偏理论,干货比较少。我们可以再深入一点点,了
oracle 排序性能优化,Oracle优化之: 利用索引的有序性减少排序
ORDER BY通常会有两种实现方法,一个是利用有序索引自动实现,也就是说利用有序索引的有序性就不再另做排序操作了。