TCP服务器实例
按照基本的套接字编程流程,建立服务器,我们只需要调用socket、bind、listen、accept、send、recv、closesocket函数即可,如程序清单4,首先使用socket函数创建TCP类型的套接字,然后调用bind函数绑定本地网卡的IP地址和端口号,使用listen监听客户端的请求,然后accept函数将阻塞等待客户端的请求连接,当服务器监听到有客户端请求连接时,accept退出阻塞状态,建立连接,进入循环,使用send、recv收发数据。当数据传输完成后,使用closesocket关闭连接,回收资源。
程序清单4 非阻塞服务器
程序编写完成后,将服务器例程入口函数demo_tcp_server_block_entry()放入主函数中编译、下载到开发板,程序运行后在shell界面可看到服务器已经启动,如图9。
图9 服务器启动
服务器启动后,同样使用TCP上位机软件建立客户端进行测试,指定服务器的IP和端口号,如图10。
图10 创建客户端
客户端创建后,点击连接,如图11。
图11 连接到服务器
连接成功后,在发送区发送数据,接收区可以看到服务器回发的数据,如图12所示。此时在串口界面也可以看到服务器收到的数据,如图13。
图12 客户端收发数据
图13 服务器收到的数据
出错调试
如果程序运行后,没有成功建立连接,可按照以下步骤查看网络状态:
首先在串口界面调用AWorks的Shell命令ip addr,查看以太网IP地址是否配置成功,如图14。然后使用ping命令测试网络通信是否正常,如图15。
图14 查看ip地址
图15 测试网络是否正常
注解:本文使用的硬件平台为M1052_EV_Board开发板,购买可咨询ZLG的销售人员;软件平台为aworks_m105x_sdk_1.0.4-alpha软件包。