- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言实的串行通信接口程序
摘要:该文介绍了Sockets通信原理,从程序员角度着重讨论了WindowsSockets为支持异步通信对Sockets的功能扩充,并给出了应用WindowsSockets实现网络实时通信的一个程序实例。关IBM公司于1994年4月推出的TCP/IPforDOSV2.1.1所提供的开发软件包ProgrammersToolKit不仅带有DOS下网络编程接口,而且提供了Windows下网络异步通信接口WINSOCK。
一、Socket网络编程原理Socket是BSDUNIX提供的网络应用编程接口,它采用客户机/服务器的通信机制,使网络客户机方和服务器方通过Socket实现网络之间的连接和数据交换。Socket提供了一系列的系统调用,使用这些系统调用可以实现TCP、UDP、ICMP和IP等多种网络协议之间的通信。
WINSOCK对Socket的扩充
我们来设计一个简单的基于连接的点对点网络实时通信程序。服务器首先启动,它建立套接字之后等待客户机的连接;客户机在启动后,建立套接字,然后和服务器建立连接;连接建立后,客户机通过连接给服务器发送一段数据,服务器接收后又将它发送回来,客户机再发送,如此循环,直至用户命令客户机退出或网络出错;客户机关闭连接和套接字后退出,服务器在检测到连接关闭后,关闭套接字自动结束。
我们的实例是UNIX下基于BSDSocket的服务器程序和Windows下基于WINSOCK的客户机程序之间的通信。服务器在主机UNIX下直接运行,前台和后台均可;客户机在Windows下运行,带一个参数,即主机的名字。如winclientrs6000,rs6000是在HOSTS文件中已定义好的主机名。
我们先看客户机程序,首先定义几个宏、菜单资源和部分全局变量。
程序1:部分Windows程序源代码(宏、菜单和变量)
#defineUSERPORT3333/*用户定义端口号*/
#defineIDM-START101/*“启动”菜单项标志*/
#defineIDM-EXIT102/*“退出”菜单项标志*/
#defineUM-SOCKWM-USER+0x100/*用户定义网络消息*/
ClientMenuMENU/*客户机菜单*/
BEGIN
POPUPServer
BEGIN
MENUITEMStart...,IDM-START
MENUITEMStop,IDM-STOP
END
END
#include/*必须包含winsock.h头文件*/
HANDLEhInst;
charserver-address={0};/*服务器地址缓冲区*/
charbuffer;/*接收发送缓冲区*/
charFAR*lpBuffer=buffer;
SOCKETs=0;/*套接字*/
structsockaddr-indst-addr;/*目标地址*/
structhostent*hostaddr;/*主机地址*/
structhostenthostnm;
intcount=0;/*发送接收循环计数器*/
客户机程序的窗口主函数很简单,它在注册窗口类、建立窗口后,只是给主窗口函数发送一个用户消息,然后就进入Windows消息处理循环。
程序2:部分Windows程序源代码(窗口主函数)
intPASCALWinMain(HANDLEhInstance,HANDLEhPrevInstance,LPSTRlp
CmdL
ine,intnCmdShow)
{
HWNDhWnd;
MSGmsg;
lstrcpy((LPSTR)server-address,lpCmdLine);/*取主机名字*/
if(!hPrevInstance)
if(!InitApplication(hInstance))
return(FALSE);
hInst=hInstance;
hWnd=CreateWindow(ClientClass,WindowsECHOClient,
WS-OVERLAPPEDWINDOW,CW-USEDEFAULT,CW-USEDEFAULT,
CW-USEDEFAULT,CW-USEDEFAULT,
NULL,NULL,hInstance,NULL);
if(!hWnd)
return(FALSE);
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);
/*给主窗口函数发送WM-USER消息*/
PostMessage(hWnd,WM-USER,(WPARAM)0,(L
您可能关注的文档
- 公路路面沥青施工质量的控制探析.doc
- 构建中国行政诉讼的有限调解制度.doc
- 骨干教师学年度考核标准.doc
- 关于大学生公共安全素质现状调查述评.doc
- 关于加强电网企业劳动用工管理的思考.doc
- 关于木麻黄制备重组层积材的研究.doc
- 关于小学语文教学“低耗高效”问题的几点思考.doc
- 关于中学英语教师继续教育的几点思考.doc
- 管理服务人管理办法.doc
- 广告法律制度的回顾与展望.doc
- 2023咸阳职业技术学院招聘笔试真题参考答案详解.docx
- 2023四川化工职业技术学院招聘笔试真题及参考答案详解.docx
- 2023哈尔滨职业技术学院招聘笔试真题及参考答案详解.docx
- 2023商洛职业技术学院招聘笔试真题及答案详解1套.docx
- 2023呼伦贝尔职业技术学院招聘笔试真题参考答案详解.docx
- 2023南阳农业职业学院招聘笔试真题参考答案详解.docx
- 2023天津公安警官职业学院招聘笔试真题带答案详解.docx
- 2023年上海电机学院招聘笔试真题参考答案详解.docx
- 2023年四川艺术职业学院招聘笔试真题参考答案详解.docx
- 2023安徽体育运动职业技术学院招聘笔试真题及答案详解一套.docx
最近下载
- 中医内科学课件:胃痛.ppt
- 广州市海绵城市建设技术指引及标准图集(试行).pdf
- 基于SpringBoot技术的论坛系统设计与实现.docx
- 本科毕业设计—110kv变电站电气一次部分设计 发电厂课程设计报告.doc VIP
- 世界甲状腺日甲状腺健康科普PPT.pptx VIP
- 电力线路维保服务投标方案(技术方案).pdf VIP
- 2024-2025学年中职思想政治中国特色社会主义高教版(2023)教学设计合集.docx
- 第32课《让思维活跃起来》课件2024北师大版心理健康七年级下册 .ppt
- 山东省(烟台市、德州市)2025届高三高考适应性测试化学试题及答案.docx VIP
- 黑龙江高职高专:畜牧兽医专业建设方案.doc
文档评论(0)