首页
熊猫办公下载
文件下载
根据地址查询经纬度
登录 / 注册
一级分类:
安全技术
存储
操作系统
服务器应用
行业
课程资源
开发技术
考试认证
数据库
网络技术
信息化
移动开发
云计算
大数据
跨平台
音视频
游戏开发
人工智能
区块链
二级分类:
C++使用SOCKET实现TCP-IP协议的通讯最好的DEMO源码
首先要理解基本的原理,2台电脑间实现TCP通讯,首先要建立起连接,在这里要提到服务器端与客户端,两个的区别通俗讲就是主动与被动的关系,两个人对话,肯定是先有人先发起会话,要不然谁都不讲,谈什么话题,呵呵!一样,TCPIP下建立连接首先要有一个服务器,它是被动的,它只能等待别人跟它建立连接,自己不会去主动连接,那客户端如何去连接它呢,这里提到2个东西,IP地址和端口号,通俗来讲就是你去拜访某人,知道了他的地址是一号大街2号楼,这个是IP地址,那么1号楼这么多门牌号怎么区分,嗯!门牌号就是端口(这里提到一点,我们访问网页的时候也是IP地址和端口号,IE默认的端口号是80),一个服务器可以接受多个客户端的连接,但是一个客户端只能连接一台服务器,在连接后,服务器自动划分内存区域以分配各个客户端的通讯,那么,那么多的客户端服务器如何区分,你可能会说,根据IP么,不是很完整,很简单的例子,你一台计算机开3个QQ,服务器怎么区分?所以准确的说是IP和端口号,但是客户端的端口号不是由你自己定的,是由计算机自动分配的,要不然就出现端口冲突了,说的这么多,看下面的这张图就简单明了了。
在上面这张图中,你可以理解为程序A和程序B是2个SOCKET程序,服务器端程序A设置端口为81,已接遭到3个客户端的连接,计算机C开了2个程序,分别连接到E和D,而他的端口是计算机自动分配的,连接到E的端口为789,连接到D的为790。
了解了TCPIP通讯的基本结构后,接下来讲解建立的流程,首先声明一下我用的开发环境是VisualStudio2008版的,语言C#,组件System.Net.Sockets,流程的建立包括服务器端的建立和客户端的建立,如图所示:二、实现:1.客户端:第一步,要创建一个客户端对象TcpClient(命名空间在System.Net.Sockets),接着,调用对象下的方法BeginConnect进行尝试连接,入口参数有4个,address(目标IP地址),port(目标端口号),requestCallback(连接成功后的返调函数),state(传递参数,是一个对象,随便什么都行,我建议是将TcpClient自己传递过去),调用完毕这个函数,系统将进行尝试连接服务器。
第二步,在第一步讲过一个入口参数requestCallback(连接成功后的返调函数),比如我们定义一个函数voidConnected(IAsyncResultresult),在连接服务器成功后,系统会调用此函数,在函数里,我们要获取到系统分配的数据流传输对象(NetworkStream),这个对象是用来处理客户端与服务器端数据传输的,此对象由TcpClient获得,在第一步讲过入口参数state,如果我们传递了TcpClient进去,那么,在函数里我们可以根据入口参数state获得,将其进行强制转换TcpClienttcpclt=(TcpClient)result.AsyncState,接着获取数据流传输对象NetworkStreamns=tcpclt.GetStream(),此对象我建议弄成全局变量,以便于其他函数调用,接着我们将挂起数据接收等待,调用ns下的方法BeginRead,入口参数有5个,buff(数据缓冲),offset(缓冲起始序号),size(缓冲长度),callback(接收到数据后的返调函数),state(传递参数,一样,随便什么都可以,建议将buff传递过去),调用完毕函数后,就可以进行数据接收等待了,在这里因为已经创建了NetworkStream对象,所以也可以进行向服务器发送数据的操作了,调用ns下的方法Write就可以向服务器发送数据了,入口参数3个,buff(数据缓冲),offset(缓冲起始序号),size(缓冲长度)。
第三步,在第二步讲过调用了BeginRead函数时的一个入口参数callback(接收到数据后的返调函数),比如我们定义了一个函数voidDataRec(IAsyncResultresult),在服务器向客户端发送数据后,系统会调用此函数,在函数里我们要获得数据流(byte数组),在上一步讲解BeginRead函数的时候还有一个入口参数state,如果我们传递了buff进去,那么,在这里我们要强制转换成byte[]类型byte[]data=(byte[])result.AsyncState,转换完毕后,我们还要获取缓冲区的大小intlength=ns.EndRead(result),ns为上一步创建的NetworkStream全局对象,接着我们就可以对数据进行处理了,如果获取的length为0表示客户端已经断开连接。
具体实现代码,在这里我建立了一个名称为Test的类:2.服务
2023/2/17 5:19:13
297KB
TCP/IP
C++
协议
1
简单谈一谈在数字时代下如何建设好智慧城市.docx
现代化城市治理向数字化、智慧化转型已经成为全世界各国家区域发展的共同议题。
不久前,在2020年APEC工商领导人中国论坛上,APEC中国工商理事会联合波士顿咨询(BCG)、巨量引擎等共同发表研究成果《建设数字城市,释放数字生命力——数字时代下,提升城市新生代影响力》(以下简称:报告)显示,诸多国家正在积极主动规划开展数字城市建设。
2023/2/15 23:17:03
3.26MB
智慧城市
1
送女朋友/女孩子生日精美的生日祝福小程序
送祝福,女朋友、女孩、朋友生日送这精美的生日祝福小程序(直接解压运行即可,退出按Esc键),电脑上用哟,按住右上角或左上角区域是可以移动的,可以给TA一个惊喜!还可自行设置屏幕铺满带有相框的照片(即在程序目录中新建名为myPhoto文件夹并放入照片图像文件(格式应为:BMP、JPG、JPEG、PNG、GIF,大小建议为280*226和600*484为最宜)。
运行到最初会出现的哟!
2023/2/15 19:45:46
5.01MB
精美
生日祝福
小程序
女朋友
1
农证宝食用农产品合格证打印程序系统.zip
农证宝食用农产品合格证打印系统实现了电脑、手机随时打印食用农产品合格证,围绕农产品生产管理特点,对农产品生产者信息以及农产品生产过程信息进行采集和管理,方便农产品生产者自行打印生成食用农产品合格证,协助农业管理部门统计上报管辖区域的食用农产品合格证数据。
农证宝食用农产品合格证批量打印程序,已经为全国10多万家成规模农产品生产企业提供优质食用农产品合格证批量打印服务,已打印食用农产品合格证100多万张,即下即用,快速上手!
2023/2/14 1:05:20
4.61MB
食用农产品合格证
食用农产品合格证批量打印
1
区域卫生信息平台交互范例11:文档采集服务(V0.6.2).pdf
区域卫生信息平台交互范例11:文档采集服务(V0.6.2)
2023/2/13 0:53:23
536KB
医疗行业规范
区域卫生信息平台交互规范11
区域卫生信息平台交互规范
文档采集服务
1
ApachePulsar2.6.1版本发布前瞻
ApachePulsar是Apache软件基金会顶级项目,是下一代云原生分布式消息流平台,集消息、存储、轻量化函数式计算为一体,采用计算与存储分离架构设计,支持多租户、持久化存储、多机房跨区域数据复制,具有强分歧性、高吞吐、低延时及高可扩展性等流数据存储特性。
2023/2/12 15:05:33
2.12MB
ApachePulsar
Pulsar
消息队列
消息中间件
1
图像的区域生长分割matlab程序
完好的图像分割就是,含有matlab图像,程序代码
2023/2/11 6:06:50
16KB
区域生长
图像分割
matlab
1
激光透射焊接件拉伸过程应力分布和失效行为
采用模拟与实验相结合的方式研究激光透射焊接件拉伸过程中的应力分布和拉伸件的失效行为。
以PA66激光透射焊接件为研究对象,建立了焊后拉伸数值模拟模型,模拟得到了焊接件的拉伸载荷-位移曲线和拉伸变形情况,并与拉伸实验进行对比和验证;
对拉伸过程中焊接件的剪切应力和VonMises应力分布进行分析,从剪切和拉伸失效方面探究拉伸件的失效行为。
拉伸实验验证了拉伸数值模拟模型能较好地预测焊接件的拉伸变形情况;
数值模拟得到最大剪切应力发生在焊接界面上长方形焊接区域的4个角点附近,即剪切失效的起始位置,且由于最大剪切应力远小于PA66的剪切强度,拉伸件发生剪切失效的可能性较小。
预测的焊接件拉伸失效方式及失效位
2023/2/11 4:16:19
12.28MB
激光技术
激光透射
拉伸数值
剪切应力
1
Php多线程内容采集器(集成snoopysimple_html_dom)。
使用phpcurl族的多线程函数,并结合开源的snoopy和simple_html_dom对html的处理,使采集特定区域的内容轻松起来。
当然,您也可以设置通过正则来采集。
程序也可以采集远程图片到本地。
详细使用说明见readme.html.试试就晓得妙处。
2023/2/10 21:56:15
43KB
php、多线程、采集、snoopy、simple_html_dom
1
用无限元方法求解二维possion方程
提供了用无限元方法求解三角形定解区域上二维possion方程的matlab程序
2023/2/10 21:38:49
2KB
有限元
possion方程
三角形区域
1
共 987 条记录
首页
上一页
下一页
尾页
钉钉无人值守自动打卡脚本 永不迟到的神器 安卓和苹果教程
New!
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03
15KB
钉钉
钉钉打卡
个人信息
点我去登录or注册
|
微信登录
一言
热门下载
双系统双频伪距单点定位程序
Docker构建tomcat镜像jdk1.8+tomcat9.zip
数据库系统概论第五版
中科院考博英语2009-2018年试题及答案解析(十五套436面).pdf
飘逸传世引擎源代码
CNS2_CN_VW_P0095D_0332.7z
R9390系列BIOS修改和风扇调速工具
HTML5+CSS3中文参考手册(3手册)chm版中文参考手册打包
StimulsoftReports2020.1.1License.rar
几何画板课件350套.zip
ENVI去云补丁Haze_tool文件及其使用说明和安装方法
吉利新金刚2016款车机导航系统
ABAQUS金属非稳态和稳态切削过程的模拟分析_张东进.pdf
KEPServerEXV6.7.zip
vue项目demo(asp.netmvc5+vue2.5)
最新下载
framedyn.dll
国土空间规划数据标准-20190520-1330.rar
哈尔滨师范大学333教育综合历年真题(2010-2020).pdf
flash动画作业3分钟
cmpp2java实现及网关模拟器
javaJDK1.8版本下载
TeeChartProActivexcontrolv8例子源代码
R介绍-源码
Qt捕获Opencv窗体并加载到界面
滑模变结构控制PDF-王丰尧
Python环境下利用matplotlib绘制发动机万有特性曲线.zip
Java程序设计与实例源代码
电影院售票系统
ADS软件设计仿真实验
其他资源
使用散斑减少各向异性扩散的超声图像分割多尺度测地线活动轮廓
PSO粒子群优化算法python程序代码
两位数码管循环显示00-99
osdi20论文全收录
protel元件PCB封装库大全(很全,各类器件都有)
ENVI中文帮助文档
XML先生管理系统
启发式扫描和主动防御技术
旅游指南系统(完整简单的java编写)
超好用的内网ARP检测软件
EWT经验小波matlab应用实现(信号处理)
边缘检测Canny算子C#程序
最新影视双端对于接苹果cms.zip
java实现Excel数据导入到数据库
IDApro全插件版
ASP大马(浸透网站)
安装震旦AD188.docx
串口调试助手(丁丁(聂小猛版))
运转VC6++程序时提示缺失的dll
串口转IAP然后到APP