使用C(或C++)语言编写网络通信模拟程序
1、变量定义: (1)需要定义套接字类型变量,因为套接字存在于地址族中,可以将通过套接字通信的进程的公有特性综合在一起。套接字通常只与同一区域的套接字交换数据。Windows Sockets只支持AF_INET网络域,使用网际协议族通信的进程使用该域。因此只有将数据转换成Socket类型的数据才可以进行传输。 (2)定义地址结构体,用于存储协议族、ip地址以及端口号。其中,在地址结构体sockaddr_in中的sin_family部分指代协议族,也用于存放协议族信息,这一项在socket编程中只能是AF_INET,地址结构体sockaddr_in中的sin_addr部分用于存储ip地址,而sin_port部分则用于存储端口号 (3)定义双字节型数值Socket版本,这里必须要提及MAKEWORD函数,MAKEWORD函数的作用是将两个byte类型合并成一个双字节型,其中一个在高8位,另一个在低8位。将MAKEWORD函数合并成的双字节型值赋给双字节型数值sockVersion作为Socket版本。 (4)定义WSADATA类型的值,用来存储返回的Sockets数据。WSADATA是一种数据结构。这个结构被用来存储被WSAStartup函数调用后返回的Windows Sockets数据。 2、函数介绍: 在server程序中:
2. 服务停止函数stop(): 该函数用于停止服务器,首先对startOK的值进行判断,若startOK的值已经被赋为0(服务器已经启动),则开 始关闭服务器。其中涉及到了closesocket函数,closesocket函数的作用和socket函数的作用相反,释放为套接字分 配的资源。而另一个用到的函数WSACleanup()则和WSAStartup函数的作用相反,终止对WSA的使用。
在client程序中:
|
使用C(或C++)语言编写网络通信模拟程序相关推荐
- c语言编写银行业务模拟程序,C语言数据结构实现银行模拟
C语言数据结构实现银行模拟 实现代码: #include #include #include #define MAX_WIN 20 #define MAX_STAY 100 typedef struc ...
- python语言小程序-微信小程序可以用Python语言编写吗?
Q: 微信小程序可以用Python语言编写吗? A: 小程序一般开发HTML.CSS.JS,需要后台开发就需要PHP,MySQL等了.你说的这种语言开发小程序不好使.如果你不想学更多,建议你找一家专业 ...
- 使用WINSOCK的网络通信模拟程序 (客户机端)
使用WINSOCK的网络通信模拟程序 (客户机端) 最近在做嵌入式的project过程中,学习了winsock网络编程,project主要的内容是在移植到stm32之前通过c语言对整个过程进行模拟:过 ...
- 使用WINSOCK的网络通信模拟程序(服务器端)
使用WINSOCK的网络通信模拟程序 (服务器端) 最近在做嵌入式的project过程中,学习了winsock网络编程,project主要的内容是在移植到stm32之前通过c语言对整个过程进行模拟:过 ...
- java c语言 socket_网络通信 C语言 Socket TCP Select Server
前言 工作中遇到各种各样的网络通信.有MQTT和CoAP这样的物联网应用层协议,也有各种自定义的TCP或UDP协议.使用各种不同的计算机语言和框架开发网络通信,例如Java的Netty框架,C语言原始 ...
- C语言实现-----网络通信
文章目录 C语言实现-----网络通信 网络编程就是编写程序使两台联网的计算机相互交换数据. 一 .基本原理 二.流程图: 三.核心函数包含: 四.函数介绍 1.socket 函数(套接字) 2.bi ...
- 用C语言编写万年历6,C语言编写万年历
<C语言编写万年历>由会员分享,可在线阅读,更多相关<C语言编写万年历(8页珍藏版)>请在人人文库网上搜索. 1.C语言编写万年历 [要求]:1 程序运行后,首先在屏幕上显示主 ...
- 实用c语言函数源码,C语言编写简单朗读小工具(有源码)
原标题:C语言编写简单朗读小工具(有源码) 最近不少人在后台留言说学C都是面对枯燥的控制台程序,能不能体现一下C语言的实际用途,今天我们就理论结合实践一把:C语言结合VBS脚本编写一个简单的朗读小工具 ...
- R语言编写自定义函数计算R方、使用自助法Bootstrapping估计多元回归模型的R方的置信区间、可视化获得的boot对象、估计单个统计量的置信区间、分别使用分位数法和BCa法
R语言编写自定义函数计算R方.使用自助法Bootstrapping估计多元回归模型的R方的置信区间.可视化获得的boot对象.估计单个统计量的置信区间.分别使用分位数法和BCa法(Bootstrapp ...
最新文章
- 多线程开发之---线程等待
- PHP操作使用Redis
- 学习使用 Manifest
- POJ 1195 Mobile phones(裸的二维树状数组)
- 每天进步一点点《ML - KNN》
- 复习:关于类的继承和构造函数
- eclipse、EditPlus等编辑器选中列(块)的方法
- 【ubantu18.04 有线网络驱动安装 r8215-9.007.01】
- 城通网盘文件地址分析器
- 拍摄视频,真的帧率越高越好吗?
- 颂钵带给我们是什么感受
- 收集最火的开源项目——PHP 篇
- Unity酱~ 卡通渲染技术分析(一)
- Linux内核之——等待队列wait queue
- Vue项目实战:订单列表页面实现
- android canvas 画圆边缘模糊,Android canvas画圆
- Ajax与Json的使用
- 正则表达式大写转小写
- cmd进入指定目录方法
- 更改mysql数据库主键自增时报错ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry '1