Sockfd 是调用socket()返回的套接字文件描述符。 backlog是在进入队列中允许的连接数目。进入的连接是在队列中一直带你接受的连接,它们的数目限制于队列的允许。发生错误时返回-1,并设置全局错误变量errno。
想帧听进入的连接,那么系统调用的顺序是:socket()、bind()、listen()。
等待接入请求的处理过程分为先“听”然后“接受”
调用方式:Listen(s_Socket,1)
3.4accept()函数:接受要求的连接
intaccept(int sockfd,void*addr,int*addrlen);
sockfd是和listen()中一样的套接字描述符。addr是指向数据结构sockaddr_in的指针,是要求接入的信息要去的地方;addrlen是局部整型变量,设置为sizeof(structsocka-ddr_in),但在IrSock中 addr与addrlen只需要设置为0。发生错误的时候返回-1。
当客户端通过服务端的已经在侦听的端口并要与之连接时,可户端的连接将加入到等待接受的队列中。服务端调用accept()告诉它有空闲的连接。Accept()返回一个新的套接字,这样就有2个套接字,原来的一个还在帧听你的端口应用程序,新的可以用于发送和接受数据。
调用方式:c_Socket= accept(s_Socket,0,0);
3.5connect()函数:客户端用它与服务器连接。
intconnect(int sockfd,struct sockaddr*serv_addr,int addrlen);
sockfd是系统调用socket()返回的套接字。Serv_addr是保存着目的地端口和IP地址的数据结构struct sockaddr。addrlen 设置为sizeof(stuct aockaddr)。
调用方式:Connect(c_Socket,(struct sockaddr*)&address,
sizeof(SOCKADDR_IRDA));
3.6 send()与recv()函数:用于数据的通信。
intsend(int sockfd,const void*msg,int len,int flags);sockfd是你想发送数据的套接字描述符;msg是指向你想发送的数据的指针;len是数据的长度;flags设置为0。Send()返回实际发送的数据的字节数,它可能小于你要求发送的数目论文参考文献格式。
recv()函数和send()很相似:
intrecv(int sockfd,void*buf,int len,unsigned int flags);
sockfd是要读的套接字描述符;buf是要读信息的缓冲区;len是缓冲区的长度;flags可以设置为0。recv()返回实际读入缓冲区的数据的字节数,或者在错误的时候返回-1,同时设置errno。
调用方式:Send(c_Socket,(CHA FAR*)&Packet,len+sizeof(DWORD),0);
Recv(c_Socket,(char*)rBuf,sizeof(Packet),0);
3.7closesocket()函数:关闭套接字。
它将防止套接字上更多的数据读写。任何在另一端读写套接字的企图都将返回出错信息。
调用方式为:Closesocket(c_Socket);
4 在目标设备上调试和运行“红外通信工具”应用程序
把PC机(带有红外通信硬件)和在目标机放在同一平面,距离不超过一米。在2台设备上分别运行“红外通信工具”软件。在其中的一台程序界面上输入“chenyf”,在另外的设备上即可收到“chenyf”。界面如图4所示。

图4 程序运行界面
Fig.4 Procedure movement contactsurface
5 结束语
本次研究红外通信在S3C2410上的实现过程。使用Platform builder定制开发平台,移植到S3C2410电路板上;使用eMbedded Visual C++开发“红外通信工具”的应用程序。下载应用程序到开发平台,调试程序,实现红外通信。以ARM为核心的单片机功能非常的强大,结合Windows CE,可以开发出许多便携式设备和适合工业控制的装置。只有不断的学习才能了解它们的功能和掌握它们的使用方法。
参考文献:
[1]Jason Andrews.ARM SoC设计的软件和硬件协同验证[M].北京航空航天大学出版社, 2006
[2]三恒星科技.ARM易学通[M].人民邮电出版社 ,2006
[3]周立功.ARM嵌入式Linux系统构建与驱动开发范例[M].北京航空航天大学出版社, 2006
[4]孙红波.ARM与嵌入式技术[M].电子工业出版社, 2006
[5]杨恒主.ARM 嵌入式系统设计及实践[M]. 西安电子科技大学出版社, 2005
[6]朱义君.ARM微控制器体系结构与开发实例[M]. 北京航空航天大学出版社, 2005
[7]周立功.ARM嵌入式系统软件开发实例[M].北京航空航天大学出版社, 2004
[8]陈赜主.ARM嵌入式技术实践教程[M]. 北京航空航天大学出版社, 2005
[9]马忠梅.ARM & Linux嵌入式系统教程[M].北京航空航天大学出版社, 2004
[10]周立功.ARM嵌入式系统实验教程 (一) [M].北京航空航天大学出版社,2004
[11]李驹光.ARM应用系统开发详解 基于S3C4510B的系统设计[M].清华大学出版社, 2003
[12]杜春雷.ARM体系结构与编程[M].清华大学出版社, 2003
[13]周立功.ARM嵌入式系统软件开发实例[M].北京航空航天大学出社,2004
[14]田东风.WINDOWS CE应用程序设计[M].机械工业出版社,1990
[15]傅曦.嵌入式系统Windows CE开发技巧与实例[M]. 化学工业出版社,2004
[16]叶宏材.Windows CE.NET嵌入式工业用控制器及自动控制系统设计[M].清华大学出版社,2005
2/2 首页 上一页 1 2 |