en是sockaddr结构的长度,可以设置成sizeof(struct sockaddr)。bind函数将本地的端口同socket返回的文件描述符捆绑在一起,如果出错,bind()也返回1。
③ 循环接收数据,使用函数recvfrom()。
int recvfrom(int sockfd, void *buf, int len, unsigned int flags struct sockaddr *from, int *fromlen);参数from是指向本地计算机中包含源IP地址和端口号的数据结构sockaddr的指针。参数fromlen设置为sizeof(struct sockaddr)。系统调用recvfrom ()返回接收到的字节数,如果出错则返回1。
④ 关闭网络连接,使用close()调用关闭连接的套接口文件描述符:close(sockfd)。这样就不能再对此套接口做任何的读写操作了。
2)客户端程序设计
① 创建一个Socket套接字。
② 绑定一个IP地址。
③ 设置对方的IP地址和端口等属性。
④ 发送数据,使用sendto函数。
int sendto(int sockfd, const void *msg, int len, unsigned int flags,const struct sockaddr *to, int tolen);除了两个参数以外,其他的参数和系统调用send()时相同。参数to是指向包含目的IP地址和端口号的数据结构sockaddr的指针。参数tolen可以设置为sizeof(struct sockaddr)。系统调用sendto()返回实际发送的字节数,如果出错则返回1。
⑤关闭网络连接。
4 结束语
本文设计了一个基于以太网的嵌入式控制平台,介绍了软硬件的实现方法,能够完成数据在网络上的传输,为工业网络控制的实现打下了基础。
5 参考文献
[1] Samsung Electr onics Co. Ltd. User`s Manual of S3C2440
[2] 龙新辉,陈俊杰、《基于嵌入式Linux 的以太网卡驱动设计与实现》[J]、舰船电子工程、2011,31(3),143-146
[3] 李亚锋, 欧文盛、ARM 嵌入式Linux 系统开发从入门到精通[ M] . 北京: 清华大学出版社, 2007
[4] 崔志方,黄 坚,皮佑国、《基于工业以太网的焊接网络控制器研究》[J]、电焊机、2009,39(8),60-63
[5] Stev ens W R. TCP/ IP 详解卷1: 协议[ M] . 范建华, 等译. 北京: 机械工业出版社, 2001
2/2 首页 上一页 1 2 |