ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

232-CH579M学习开发-以太网例程-TCP服务器(项目应用封装,局域网或广域网测试)

2022-06-11 17:33:58  阅读:154  来源: 互联网

标签:socket 例程 TCP 开发板 192.168 服务器 以太网 客户端


<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/LearnCH579M" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>

<iframe frameborder="0" height="1500" name="ifd" scrolling="auto" src="https://mnifdv.cn/resource/cnblogs/LearnCH579M" width="100%"></iframe>

 

说明

这节演示一下开发板作为TCP服务器和电脑上位机TCP客户端局域网通信

准备个路由器或者交换机.

 

测试

1.使用网线连接的路由器或者交换机(和电脑连接同一个)

 

 

 

2.编译下载这节的程序到开发板

 

 

 

3.开发板上面的串口会打印开发板的IP地址

 

 

 

4.打开电脑TCP调试助手(安装下面这个,可以测试多路TCP客户端)

 

 

 

 

 

5.创建连接

IP地址填写开发板的IP地址,这个要根据上面串口打印的填写,我的是192.168.1.101

开发板TCP服务器监听的端口号是 6666

 

 

 

 

 

 

 

 

 

 

6.开发板会打印连接的客户端信息

TCP调试助手每隔一段时间会收到开发板发来的数据

 

 

 

 

7.电脑调试助手发送数据给开发板(TCP服务器)

开发板(TCP服务器)接收到什么数据就回复什么数据, 同时会把接收的信息使用串口输出,

 

 

 

 

8.再创建个客户端去连接

 

 

 

 

 

 

 

 

第二个客户端每隔一段时间收到服务器发来的数据, 其它就不测试了

 

 

 

 

 

程序说明

1,程序是封装好了的,我说明一下使用

 

 

 

 

2,建一个TCP服务器变量

net_tcp_server_struct net_tcp_server;

 

 

 

 

3,把net_tcp_server_data 函数放到网络事件处理函数里面

 

 

 

4,设置下服务器监听的端口号

 

 

 

5,因为是局域网,所以在DHCP回调函数里面调用TCP服务器创建函数

下面的回调函数的写法就是这样子写,里面的处理程序后面我会说明(我提供的例子是支持多路连接的,所以程序有点多)

 

 

 

 

 

6,客户端连接之后就会进这个里面

 

 

 

因为实际项目可能需要在别的给客户端发送消息,所以记录下这个socket

下面写成if判断是判断哪个变量没有使用, 就使用哪个变量去记录

 

 

 

 

如果只有一路客户端可以直接

 

 

 

 

 

 

 

 

7,接收客户端的消息

 

 

 

在接收里面也可以知道客户端的ip地址和端口号

 

 

 

    printf("ip address:%d,%d,%d,%d,%ld\r\n",
    SocketInf[socket_client_value->socket_id].IPAddr[0], 
    SocketInf[socket_client_value->socket_id].IPAddr[1], 
    SocketInf[socket_client_value->socket_id].IPAddr[2], 
    SocketInf[socket_client_value->socket_id].IPAddr[3],
    SocketInf[socket_client_value->socket_id].DesPort
    );

 

 

8,发送消息给客户端

在接收里面直接返回的话是下面这样子写

 

 

 

 

在别的地方发送数据给客户端就需要用到先前那个变量了

 

 

 

注意事项

1,如果是多路客户端连接,实际上 socket1,socket2,socket3,socket4变量的记录有可能是变化的.

假设有2个客户端, 192.168.1.90  ;  192.168.1.101

一开始192.168.1.90 先连接  192.168.1.101 后连接,

现在socket1记录了192.168.1.90;  socket2记录了 192.168.101

 

但是如果两个客户端时不时的反复的断开和连接以后, 记录就有可能变了

可能socket2记录 192.168.90 ;  socket1记录 192.168.1.101

 

一会回来接着写...

 

标签:socket,例程,TCP,开发板,192.168,服务器,以太网,客户端
来源: https://www.cnblogs.com/yangfengwu/p/16366345.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有