做enc28j60网络模块实验时,板子可以做server端,但是做client端时,网络调试助手连接成功,但是发送数据提示没有连接对象

2019-07-21 05:04发布

各位高手看看出了什么问题啦,弄了2天了。做enc28j60网络模块实验时,板子可以做server端,但是板子做client端时,网络调试助手连接就绪,但是发送数据弹出提示没有连接对象,电脑端也收不到板子发送的数据。我感觉是tcp_client_reconnect(); 函数没有连接成功。请问这是什么原因呢?我把listen 的和reconnect的分别注释掉单独做客户端和服务器,也不可以,求解
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
41条回答
正点原子
1楼-- · 2019-07-22 00:37
回复【6楼】叛逆的承诺:
---------------------------------
重新复位一下。
然后,你注意你电脑的IP是多少?
和程序里面连接的目标IP一致么?
叛逆的承诺
2楼-- · 2019-07-22 05:22
回复【7楼】正点原子:
---------------------------------
都设置好了,试了好多次了就是不行,做服务端时正常。不知道为什么。。。一直提示invalid version or header length.是什么原因呀?是不是现在还没有进行tcp的握手?
正点原子
3楼-- · 2019-07-22 06:31
 精彩回答 2  元偷偷看……
叛逆的承诺
4楼-- · 2019-07-22 09:02
回复【9楼】正点原子:
---------------------------------
IO口,spi口都正常,板子ip为192.168.1.16,mac为const u8 mymac[6]={0x00,0x00,0x35,0x00,0x00,0x01}; //MAC地址
电脑ip为192,168,1,107,网络调试助手端口设置为1400
void tcp_client_reconnect()
{
uip_ipaddr_t ipaddr;
uip_ipaddr(&ipaddr,192,168,1,107); //设置IP为192.168.1.XXX
uip_connect(&ipaddr,htons(1400));  //端口为1400
},板子做服务端正常说明硬件及配置上应该没什么问题的吧
正点原子
5楼-- · 2019-07-22 12:31
回复【10楼】叛逆的承诺:
---------------------------------
这设置可以.
叛逆的承诺
6楼-- · 2019-07-22 13:02
回复【11楼】正点原子:
---------------------------------
纳闷了,为什么会这样呢,原子哥,板子做客户端和做服务端时对应uip外部appcal,只是那个switch通过不同本地和远程端口来选择不同的回调函数的吧,应该不是uip.c内部原因吧,那为什么一直显示invalid version or header length呢,是不是提示不是合法ipv4包呢,我电脑也都是ipv4呀,为什么tcp无法连接呢,应该做客户端更容易些才对呀。。。。。纠结,困惑

一周热门 更多>