欢迎来到天天文库
浏览记录
ID:57828273
大小:273.27 KB
页数:11页
时间:2020-09-02
《电脑与6678通过网口通信.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一、通过TCP/IP协议通信:1.目标:将PC机中C盘目录下的a.bmp文件通过网口传递给66782.准备工作:(CCSv5.2;C++2010;EVM6678L)1).将PC的IP设为192.168.2.1012).将6678设为静态IP和NoBoot模式,各按键设置如图所示。3).编译PC端C++程序时,需添加相应的网络应用的库函数WS_32.lib。具体步骤如下:项目→XXX(文件名)属性→配置属性→链接器→输入→附加依赖项→WS_32.lib3.程序说明:1)PC端C++程序#include#includeusingname
2、spacestd;#include#include#includeintmain(){constintDEFAULT_PORT=700;//6678程序端口号//初始化WORDwVerisonRequested;WSADATAwsaData;interr,iLen=0;wVerisonRequested=MAKEWORD(2,2);err=WSAStartup(wVerisonRequested,&wsaData);if(err!=0){cout<<"加载WinSock失败!";return0;}cout<<"加载Wi
3、nSock成功!"<4、协议类型,和程序端口号,//6678作为服务器addrSrv,PC端做客户端addrCliaddrCli.sin_family=AF_INET;//通信协议addrCli.sin_addr.S_un.S_addr=inet_addr("192.168.2.101");//IPaddrCli.sin_port=htons(500);//端口号//inet_addr()和htons()为字节序转换函数,由于计算机字节序和网络字节序相反,需通过上述函//数进行变换addrSrv.sin_family=AF_INET;addrSrv.sin_addr.S_un.S_addr=inet5、_addr("192.168.2.100");addrSrv.sin_port=htons(DEFAULT_PORT);//将PC端的socket与6678端的socket进行绑定err=bind(sockClient,(SOCKADDR*)&addrCli,sizeof(SOCKADDR));if(err!=0){cout<<"bind()fail:"<6、ary);staticcharbmpBuf[768][1024][3],ack;//bmpBuf用于存放读入的bmp位图数据BITMAPbmpHeader,*pbmpHeader=&bmpHeader;//用于存放bmp文件头memset(pbmpHeader,0,sizeof(BITMAP));BITMAPINFOHEADERbmpInfoHeader,*pbmpInfoHeader=&bmpInfoHeader;//用于存放bmp位图信息//头memset(pbmpInfoHeader,0,sizeof(BITMAPINFOHEADER));in((char*)pbmpH7、eader,sizeof(BITMAP));//读入bmp文件头in((char*)pbmpInfoHeader,sizeof(BITMAPINFOHEADER));//读入bmp位图信息头cout<
4、协议类型,和程序端口号,//6678作为服务器addrSrv,PC端做客户端addrCliaddrCli.sin_family=AF_INET;//通信协议addrCli.sin_addr.S_un.S_addr=inet_addr("192.168.2.101");//IPaddrCli.sin_port=htons(500);//端口号//inet_addr()和htons()为字节序转换函数,由于计算机字节序和网络字节序相反,需通过上述函//数进行变换addrSrv.sin_family=AF_INET;addrSrv.sin_addr.S_un.S_addr=inet
5、_addr("192.168.2.100");addrSrv.sin_port=htons(DEFAULT_PORT);//将PC端的socket与6678端的socket进行绑定err=bind(sockClient,(SOCKADDR*)&addrCli,sizeof(SOCKADDR));if(err!=0){cout<<"bind()fail:"<6、ary);staticcharbmpBuf[768][1024][3],ack;//bmpBuf用于存放读入的bmp位图数据BITMAPbmpHeader,*pbmpHeader=&bmpHeader;//用于存放bmp文件头memset(pbmpHeader,0,sizeof(BITMAP));BITMAPINFOHEADERbmpInfoHeader,*pbmpInfoHeader=&bmpInfoHeader;//用于存放bmp位图信息//头memset(pbmpInfoHeader,0,sizeof(BITMAPINFOHEADER));in((char*)pbmpH7、eader,sizeof(BITMAP));//读入bmp文件头in((char*)pbmpInfoHeader,sizeof(BITMAPINFOHEADER));//读入bmp位图信息头cout<
6、ary);staticcharbmpBuf[768][1024][3],ack;//bmpBuf用于存放读入的bmp位图数据BITMAPbmpHeader,*pbmpHeader=&bmpHeader;//用于存放bmp文件头memset(pbmpHeader,0,sizeof(BITMAP));BITMAPINFOHEADERbmpInfoHeader,*pbmpInfoHeader=&bmpInfoHeader;//用于存放bmp位图信息//头memset(pbmpInfoHeader,0,sizeof(BITMAPINFOHEADER));in((char*)pbmpH
7、eader,sizeof(BITMAP));//读入bmp文件头in((char*)pbmpInfoHeader,sizeof(BITMAPINFOHEADER));//读入bmp位图信息头cout<
此文档下载收益归作者所有