【程序】Marvell 88W8801 WiFi模块连接路由器,并使用lwip2.0.3建立http服务器(20190314版)

该程序是旧版本!最新版本为20200208版:
https://blog.csdn.net/ZLK1214/article/details/104229202

本程序所用的单片机型号为:STM32F103VE或STM32F407VE
复位引脚(PDN)应连接到STM32F1的PA2引脚或STM32F4的PD14引脚。不连接PDN引脚将导致固件无法下载!如果模块上有PDN和RESET两个引脚,只需要连接PDN引脚。因为模块上的RESET引脚是悬空的,根本就没有连到芯片上
晶振用的是8MHz,请注意检查自己的开发板,看看晶振是不是8MHz。如果是12MHz,请修改system_stm32f10x.c或system_stm32f4xx.c文件!在F1单片机上是把PLL的倍频系数由9改成6(8×9=12×6),并在工程属性中定义HSE_VALUE=12000000

程序支持连接无密码的热点以及WEP、WPA-PSK和WPA2-PSK认证类型的热点,加密方式支持TKIP和AES。WEP加密类型仅支持添加一个密钥
程序暂不支持创建有密码的AP热点(路由器热点)
88W8801不支持Ad-Hoc点对点模式

用Keil5编写程序的时候,工程文件夹路径最好不要出现中文哦!不然代码提示可能会有问题
wifi_88w8801是主程序,直接打开下载运行即可。该程序裸机运行,不带操作系统,运行最新的lwip-2.0.3协议栈

现在lwip2.1版本已经发布了。该版本的lwip压缩包(lwip-2.1.0.zip)中的src/netif文件夹下没有ethernetif.c了,那个文件是被移动到contrib-2.1.0.zip的examples/ethernetif文件夹下去了

sd8801_uapsta.c是WiFi模块的固件,上电运行时必须由单片机发送给WiFi模块运行
该固件数据非常大,为了节约程序编译下载的时间,可以运行flash_saver程序将这些数据保存到Flash固定区域(要求芯片Flash容量至少为384KB)
然后根据串口提示,修改WiFi.h中WIFI_FIRMWAREAREA_ADDR的值(取消注释)
这样就可以移除sd8801_uapsta.c文件,大幅度降低程序烧写时间了

本程序也支持88W8782芯片,但需要将固件sd8801_uapsta.c替换成8782的内容,然后把WiFi.h中的数据发送通道数WIFI_DATAPORTS_TX_NUM由11改为15

Keil5工程下载地址:
【标准库版本】https://pan.baidu.com/s/1HupWIIN_eTU-QvbTbQN66A(提取码:t123)
【HAL库版本】https://pan.baidu.com/s/1myogwFS687nCnsPEzU9ySQ(2019年12月12日发布)

HAL库版本的Keil工程不是由STM32CubeMX创建的,而是手工建立的。其代码风格和标准库版本是一致的。
2019年12月12日发布的程序中还包含了SPI方式驱动88W8801的程序,包括标准库版本和HAL库版本。使用时直接替换WiFi_LowLevel.c即可。

【勘误】

2020年1月10日:在某些环境下,扫描热点时会出现Hard Error的错误。这是因为WiFi_Scan_Callback函数里面没有正确处理IEEE TLV导致了缓冲区溢出。解决方法是在如图所示的位置(while (ie_size > 0)下方)添加以下代码:

        if (TLV_STRUCTLEN(*ie_params) > ie_size)
        {
          ie_params->header.length = ie_size - sizeof(IEEEHeader);
          printf("Found incomplete IEEE TLV! type=%#x\n", ie_params->header.type);
        }

WiFi_ScanSSID_Callback也有同样的问题,可以用同样的方法修复。

2020年2月3日:STM32F4标准库程序里面WiFi_LowLevel.c的读写函数中,如果开启了标准库的assert_failed检验,则会因为dma.DMA_BufferSize为0而出错。SDIO的DMA用不到这个成员,所以可以填写任何非0值,将0改为1即可解决问题。

此版本修复了上一个版本(20180807版20181010版)存在的一些问题,主要更新如下: 
1. 工程改成了使用StandardLIB,不使用MicroLIB
2. 移除了88W8801不支持的Ad-Hoc模式的代码
3. 去掉了断开连接的回调函数stop_callback里面status参数的无效判断
4. 添加了检查PDN引脚是否正确连接的功能
5. F4单片机上自动开启SDIO所需的PLL倍频器
6. 可以根据指定的SDIO时钟频率自动计算分频系数
7. 添加了输出字符串格式的dump函数,并在TCP接收数据的案例中使用
8. 添加了保存在单片机Flash固定区域中的固件内容已被破坏的详细printf输出
9. WriteData函数允许禁用缓冲区大小检查
10. 优化了命令帧缓冲区结构体,合并了WiFi.c中以Ex结尾的扩展函数
11. 优化了数据帧缓冲区结构体,去掉了数据帧的回调功能
12. 创建了ethernetif.h,将ethernetif结构体和相关的函数声明在里面
13. 按端口顺序接收数据帧
14. 解决了第一次连接热点失败的bug
15. WiFi_EventHandler中用宏名表示事件号
16. 把main函数中判断SDIO中断是否发生的代码放到了LowLevel层中
17. 命令、数据和事件增加了bss字段的支持,给出了创建无密码AP的示例代码
18. 不再使用dhcp->offered_xxx,改成显示netif里面的IP地址
19. 修复了WiFi_EventHandler函数中认证失败时无法自动重连的bug
20. 数据发送速度测速器使用setsockopt设置了recv超时时间,单片机端使用tcp_shutdown函数通知主机停止接收数据
21. 收发数据时改成等待DATAEND位而不是TXACT或RXACT位, 增加了超时判定
22. WriteData和ReadData失败时重新读写,增加了固件下载出错时重传的功能,增加了address increment选项,以及是否允许使用多字节(Stream)模式的选项
23. 将网卡输入函数由ethernet_input改为通用的netif_input
24. 给头文件加上了#ifndef防重复包含的宏定义
25. low_level_output发送数据帧前检查网络连接是否是连通的
26. 添加了显示TCP报文字段详细信息的功能(tcpdump)
27. wifi_test中添加了错误处理代码

【模块连线】

【Keil5工程截图】 

【笔者所用的开发板和WiFi模块】 

STM32F103VE开发板(外部5V电源供电): 

STM32F407VE开发板(电脑USB口供电):

带底板的88W8801 WiFi模块: 

如果用的开发板上面带有SD卡槽,即使里面不插内存卡,运行程序时,下载固件后或获取MAC地址后一直出现CRC错误和data timeout错误,可以采取下面的措施:

(1)把SDIO模式由4位数据线模式改为1位模式,只接SDIO_D0(PC8)和SDIO_D1(PC9,作为SDIO中断引脚),不接SDIO_D2~3(PC10~11) 。修改WiFi_LowLevel_SDIOInit函数,将下面两句话注释掉,只保留SDIO_Init

/* SDIO外设的总线宽度设为4位 */
//sdio.SDIO_BusWide = SDIO_BusWide_4b;
SDIO_Init(&sdio);
//WiFi_LowLevel_WriteReg(0, SDIO_CCCR_BUSIFCTRL, WiFi_LowLevel_ReadReg(0, SDIO_CCCR_BUSIFCTRL) | SDIO_CCCR_BUSIFCTRL_BUSWID_4Bit);

改为1位数据模式后,笔者上面的黑色带卡槽开发板的问题已经解决(用电脑USB口供电,串口用的是USB转TTL模块)。 

(2)如果还是不行,就降低SDIO的时钟频率。打开WiFi.h,将WIFI_CLOCK_FREQ改小。如100万(1MHz),50万(500kHz),或者10万(100kHz),可以设为0(使用最低频率,也就是最高分频系数) 

不过SD卡槽里面不要插内存卡。尽管插了内存卡进去,Wi-Fi模块还是可以照常使用,但是SD卡是没法用的,SD卡正常的初始化命令序列(如CMD2、CMD3)是无法成功执行的。
虽然SDIO标准规定可以总线上可以接多张SD卡,但STM32单片机的SDIO接口只支持接一张卡,STM32F103的芯片手册Datasheet(不是参考手册)中有声明:
The current version supports only one SD/SDIO/MMC4.2 card at any one time and a stack of MMC4.1 or previous.
如果想要同时使用WiFi模块和SD内存卡,建议SD内存卡采用SPI总线通信。 

【程序运行截图】

1. 串口输出

2. ping IP地址和计算机名

 3. 访问http服务器

4. 将固件烧写到单片机Flash固定区域的程序(用于节约主程序烧写时间) 

【程序运行结果】

STM32F103VE SDIO 88W8801
[Clock] freq=400.0kHz, requested=400.0kHz, divider=178
RESPCMD63, RESP1_b0ff8000
RESPCMD63, RESP1_b0300000
Number of I/O Functions: 3
Memory Present: 0
Relative Card Address: 0x0001
Card selected! RESP1_00001e00
[Clock] freq=24000.0kHz, requested=25000.0kHz, divider=1
[CIS] func=0, ptr=0x00008000
Product Information: Marvell 802.11 SDIO ID: 48
Manufacturer Code: 0x02df
Manufacturer Information: 0x9138
Card Function Code: 0x0c
System Initialization Bit Mask: 0x00
Maximum Block Size: 256
Maximum Transfer Rate Code: 0x5a
[CIS] func=1, ptr=0x00008080
Manufacturer Code: 0x02df
Manufacturer Information: 0x9139
Card Function Code: 0x0c
System Initialization Bit Mask: 0x00
Maximum Block Size: 512
[CIS] func=2, ptr=0x00008100
[CIS] func=3, ptr=0x00008180
Firmware is successfully downloaded!
CMDRESP 0x804d at 20ms
MAC Addr: 08:EA:40:31:21:8B
CMDRESP 0x8006 at 455ms
SSID 'Oct1158-2', MAC FC:D7:33:FE:D6:02, RSSI 79, Channel 1
  Timestamp 1386915102416, Beacon Interval 100, TSF timestamp: 205116
  Capability: 0x0431 (Security: WPA2, Mode: Infrastructure)
  Rates: 1.0Mbps 2.0Mbps 5.5Mbps 11.0Mbps 6.0Mbps 9.0Mbps 12.0Mbps 18.0Mbps
SSID 'Pantum-AP-F41B72', MAC 10:A4:BE:F4:1B:72, RSSI 82, Channel 2
  Timestamp 485562726975, Beacon Interval 100, TSF timestamp: 312234
  Capability: 0x0431 (Security: WPA2, Mode: Infrastructure)
  Rates: 1.0Mbps 2.0Mbps 5.5Mbps 11.0Mbps 6.0Mbps 9.0Mbps 12.0Mbps 18.0Mbps
CMDRESP 0x8006 at 451ms
CMDRESP 0x8006 at 455ms
SSID '@PHICOMM_58', MAC D8:C8:E9:34:C5:60, RSSI 73, Channel 11
  Timestamp 22025573780, Beacon Interval 100, TSF timestamp: 1283045
  Capability: 0x0c11 (Security: WPA2, Mode: Infrastructure)
  Rates: 1.0Mbps 2.0Mbps 5.5Mbps 11.0Mbps 9.0Mbps 18.0Mbps 36.0Mbps 54.0Mbps
SSID 'QYJX', MAC 88:25:93:DC:F9:42, RSSI 82, Channel 12
  Timestamp 6709264125824, Beacon Interval 100, TSF timestamp: 1387281
  Capability: 0x0411 (Security: WPA2, Mode: Infrastructure)
  Rates: 1.0Mbps 2.0Mbps 5.5Mbps 11.0Mbps 9.0Mbps 18.0Mbps 36.0Mbps 54.0Mbps
CMDRESP 0x8006 at 231ms
SSID 'CMCC-rTT6', MAC C0:98:DA:A4:EC:8E, RSSI 82, Channel 13
  Timestamp 367672153121, Beacon Interval 100, TSF timestamp: 1508867
  Capability: 0x0411 (Security: WPA2, Mode: Infrastructure)
  Rates: 1.0Mbps 2.0Mbps 5.5Mbps 11.0Mbps 9.0Mbps 18.0Mbps 36.0Mbps 54.0Mbps
Scan finished!
CMDRESP 0x8028 at 1ms
CMDRESP 0x8006 at 1559ms
CMDRESP 0x80c4 at 7981ms
CMDRESP 0x8012 at 304ms
capability=0x0431, status_code=0x0000, aid=0xc003
Waiting for authentication!
[Event] code=0x0017, size=77, bss=0x00
WMM status change event occurred!
[Event] code=0x002b, size=10, bss=0x00
Authenticated! bss=0x00
[Send] len=350, bss=0x00, port=1
[Recv] len=590, bss=0x00, port=1
[Send] len=350, bss=0x00, port=2
[Send] len=350, bss=0x00, port=3
[Send] len=350, bss=0x00, port=4
[Send] len=350, bss=0x00, port=5
[Recv] len=590, bss=0x00, port=2
[Send] len=42, bss=0x00, port=6
[Send] len=42, bss=0x00, port=7
[Send] len=42, bss=0x00, port=8
[Send] len=42, bss=0x00, port=9
DHCP supplied address!
IP address: 192.168.2.102
Subnet mask: 255.255.255.0
Default gateway: 192.168.2.1
DNS Server: 192.168.1.1
[Send] len=42, bss=0x00, port=10
Not in cache!
[Recv] len=42, bss=0x00, port=3
[Send] len=79, bss=0x00, port=11
Packet port 1 released at 15103ms
Packet port 2 released at 15009ms
Packet port 3 released at 13079ms
Packet port 4 released at 9079ms
Packet port 5 released at 1079ms
Packet port 6 released at 1059ms
Packet port 7 released at 582ms
Packet port 8 released at 112ms
Packet port 9 released at 86ms
Packet port 10 released at 74ms
[Recv] len=95, bss=0x00, port=4
DNS Found IP: 209.51.188.79
TCP socket is connecting to 209.51.188.79...
[Send] len=58, bss=0x00, port=1
[Send] len=42, bss=0x00, port=2
[Send] len=42, bss=0x00, port=3
[Send] len=58, bss=0x00, port=4
[Send] len=42, bss=0x00, port=5
[Recv] len=60, bss=0x00, port=5
TCP socket is connected! err=0
[Send] len=115, bss=0x00, port=6
[Recv] len=60, bss=0x00, port=6
[Send] len=54, bss=0x00, port=7
[Send] len=115, bss=0x00, port=8
[Recv] len=590, bss=0x00, port=7
536 bytes received!
[Send] len=54, bss=0x00, port=9
[Recv] len=590, bss=0x00, port=8
536 bytes received!
[Send] len=54, bss=0x00, port=10
Packet port 1 released at 6738ms
Packet port 2 released at 5766ms
Packet port 3 released at 4767ms
Packet port 4 released at 3997ms
Packet port 5 released at 3771ms
Packet port 6 released at 3525ms
Packet port 7 released at 1298ms
Packet port 8 released at 1007ms
Packet port 9 released at 539ms
Packet port 11 released at 6849ms
[Recv] len=352, bss=0x00, port=9
[Recv] len=42, bss=0x00, port=10
[Recv] len=42, bss=0x00, port=11
[Recv] len=92, bss=0x00, port=12
[Recv] len=42, bss=0x00, port=13
[Recv] len=92, bss=0x00, port=14
[Recv] len=42, bss=0x00, port=15
[Recv] len=92, bss=0x00, port=1
[Recv] len=42, bss=0x00, port=2
[Recv] len=590, bss=0x00, port=3
[Send] len=54, bss=0x00, port=11
[Recv] len=42, bss=0x00, port=4
[Recv] len=590, bss=0x00, port=5
[Send] len=54, bss=0x00, port=1
[Recv] len=590, bss=0x00, port=6
[Send] len=54, bss=0x00, port=2
[Recv] len=42, bss=0x00, port=7
[Recv] len=590, bss=0x00, port=8
1608 bytes received!
[Send] len=54, bss=0x00, port=3
[Recv] len=590, bss=0x00, port=9
[Send] len=54, bss=0x00, port=4
[Recv] len=342, bss=0x00, port=10
[Recv] len=42, bss=0x00, port=11
[Recv] len=590, bss=0x00, port=12
536 bytes received!
[Send] len=54, bss=0x00, port=5
[Recv] len=590, bss=0x00, port=13
[Send] len=54, bss=0x00, port=6
[Recv] len=590, bss=0x00, port=14
1072 bytes received!
[Send] len=54, bss=0x00, port=7
[Recv] len=590, bss=0x00, port=15
[Send] len=54, bss=0x00, port=8
[Recv] len=590, bss=0x00, port=1
1072 bytes received!
[Send] len=54, bss=0x00, port=9
[Recv] len=590, bss=0x00, port=2
536 bytes received!
-- Packet port 10 released at 24603ms
[Send] len=54, bss=0x00, port=10
Packet port 1 released at 13910ms
Packet port 2 released at 13907ms
Packet port 3 released at 13495ms
Packet port 4 released at 13044ms
Packet port 5 released at 1308ms
Packet port 6 released at 883ms
Packet port 7 released at 472ms
Packet port 8 released at 469ms
Packet port 11 released at 14389ms
[Recv] len=590, bss=0x00, port=3
[Send] len=54, bss=0x00, port=11
[Recv] len=590, bss=0x00, port=4
[Send] len=54, bss=0x00, port=1
[Recv] len=590, bss=0x00, port=5
[Send] len=54, bss=0x00, port=2
[Recv] len=590, bss=0x00, port=6
2144 bytes received!
[Send] len=54, bss=0x00, port=3
[Recv] len=590, bss=0x00, port=7
536 bytes received!
[Send] len=54, bss=0x00, port=4
[Recv] len=590, bss=0x00, port=8
536 bytes received!
[Send] len=54, bss=0x00, port=5
[Recv] len=590, bss=0x00, port=9
536 bytes received!
[Send] len=54, bss=0x00, port=6
[Recv] len=590, bss=0x00, port=10
536 bytes received!
[Send] len=54, bss=0x00, port=7
[Recv] len=590, bss=0x00, port=11
[Send] len=54, bss=0x00, port=8
Packet port 1 released at 2198ms
Packet port 2 released at 1785ms
Packet port 3 released at 1339ms
Packet port 4 released at 905ms
Packet port 5 released at 900ms
Packet port 6 released at 479ms
Packet port 7 released at 474ms
Packet port 9 released at 2664ms
Packet port 10 released at 2655ms
Packet port 11 released at 2235ms
[Recv] len=590, bss=0x00, port=12
[Send] len=54, bss=0x00, port=9
[Recv] len=590, bss=0x00, port=13
[Send] len=54, bss=0x00, port=10
[Recv] len=590, bss=0x00, port=14
2144 bytes received!
[Send] len=54, bss=0x00, port=11
[Recv] len=590, bss=0x00, port=15
536 bytes received!
[Send] len=54, bss=0x00, port=1
[Recv] len=590, bss=0x00, port=1
536 bytes received!
[Send] len=54, bss=0x00, port=2
[Recv] len=253, bss=0x00, port=2
[Recv] len=590, bss=0x00, port=3
536 bytes received!
[Send] len=54, bss=0x00, port=3
[Recv] len=590, bss=0x00, port=4
[Send] len=54, bss=0x00, port=4
[Recv] len=590, bss=0x00, port=5
[Send] len=54, bss=0x00, port=5
[Recv] len=42, bss=0x00, port=6
[Recv] len=42, bss=0x00, port=7
[Recv] len=590, bss=0x00, port=8
536 bytes received!
[Send] len=54, bss=0x00, port=6
[Recv] len=42, bss=0x00, port=9
[Recv] len=42, bss=0x00, port=10
[Recv] len=590, bss=0x00, port=11
1072 bytes received!
[Send] len=54, bss=0x00, port=7
Packet port 1 released at 19064ms
Packet port 2 released at 19059ms
Packet port 3 released at 15102ms
Packet port 4 released at 1345ms
Packet port 5 released at 901ms
Packet port 6 released at 457ms
Packet port 8 released at 20394ms
Packet port 9 released at 20360ms
Packet port 10 released at 19968ms
Packet port 11 released at 19546ms
[Recv] len=42, bss=0x00, port=12
[Recv] len=42, bss=0x00, port=13
[Recv] len=590, bss=0x00, port=14
536 bytes received!
[Send] len=54, bss=0x00, port=8
[Recv] len=590, bss=0x00, port=15
[Send] len=54, bss=0x00, port=9
[Recv] len=590, bss=0x00, port=1
[Send] len=54, bss=0x00, port=10
[Recv] len=590, bss=0x00, port=2
536 bytes received!
[Send] len=54, bss=0x00, port=11
[Recv] len=590, bss=0x00, port=3
1608 bytes received!
[Send] len=54, bss=0x00, port=1
[Recv] len=590, bss=0x00, port=4
536 bytes received!
[Send] len=54, bss=0x00, port=2
[Recv] len=590, bss=0x00, port=5
536 bytes received!
[Send] len=54, bss=0x00, port=3
[Recv] len=590, bss=0x00, port=6
536 bytes received!
[Send] len=54, bss=0x00, port=4
[Recv] len=590, bss=0x00, port=7
536 bytes received!
[Send] len=54, bss=0x00, port=5
[Recv] len=590, bss=0x00, port=8
[Send] len=54, bss=0x00, port=6
Packet port 1 released at 1335ms
Packet port 2 released at 887ms
Packet port 3 released at 879ms
Packet port 4 released at 874ms
Packet port 5 released at 471ms
Packet port 7 released at 58068ms
Packet port 8 released at 2241ms
Packet port 9 released at 1815ms
Packet port 10 released at 1812ms
Packet port 11 released at 1371ms
[Recv] len=590, bss=0x00, port=9
[Send] len=54, bss=0x00, port=7
[Recv] len=590, bss=0x00, port=10
536 bytes received!
[Send] len=54, bss=0x00, port=8
[Recv] len=590, bss=0x00, port=11
[Send] len=54, bss=0x00, port=9
[Recv] len=590, bss=0x00, port=12
[Send] len=54, bss=0x00, port=10
[Recv] len=590, bss=0x00, port=13
2144 bytes received!
[Send] len=54, bss=0x00, port=11
[Recv] len=590, bss=0x00, port=14
[Send] len=54, bss=0x00, port=1
[Recv] len=590, bss=0x00, port=15
[Send] len=54, bss=0x00, port=2
[Recv] len=590, bss=0x00, port=1
[Send] len=54, bss=0x00, port=3
[Recv] len=590, bss=0x00, port=2
[Send] len=54, bss=0x00, port=4
[Recv] len=590, bss=0x00, port=3
2144 bytes received!
[Send] len=54, bss=0x00, port=5
Packet port 1 released at 904ms
Packet port 2 released at 463ms
Packet port 3 released at 459ms
Packet port 4 released at 450ms
Packet port 6 released at 8389ms
Packet port 7 released at 7947ms
Packet port 8 released at 5584ms
Packet port 9 released at 1815ms
Packet port 10 released at 1376ms
Packet port 11 released at 937ms
[Recv] len=590, bss=0x00, port=4
536 bytes received!
[Send] len=54, bss=0x00, port=6
[Recv] len=590, bss=0x00, port=5
[Send] len=54, bss=0x00, port=7
[Recv] len=590, bss=0x00, port=6
[Send] len=54, bss=0x00, port=8
[Recv] len=342, bss=0x00, port=7
[Recv] len=42, bss=0x00, port=8
[Recv] len=590, bss=0x00, port=9
1608 bytes received!
[Send] len=54, bss=0x00, port=9
[Recv] len=590, bss=0x00, port=10
536 bytes received!
[Send] len=54, bss=0x00, port=10
[Recv] len=590, bss=0x00, port=11
536 bytes received!
[Send] len=54, bss=0x00, port=11
[Recv] len=590, bss=0x00, port=12
536 bytes received!
[Send] len=54, bss=0x00, port=1
[Recv] len=590, bss=0x00, port=13
536 bytes received!
[Send] len=54, bss=0x00, port=2
[Recv] len=590, bss=0x00, port=14
536 bytes received!
[Send] len=54, bss=0x00, port=3
[Recv] len=590, bss=0x00, port=15
536 bytes received!
[Send] len=54, bss=0x00, port=4
Packet port 1 released at 444ms
Packet port 2 released at 43ms
Packet port 5 released at 7932ms
Packet port 6 released at 7483ms
Packet port 7 released at 7032ms
Packet port 8 released at 6594ms
Packet port 9 released at 904ms
Packet port 10 released at 482ms
Packet port 11 released at 477ms
[Recv] len=590, bss=0x00, port=1
536 bytes received!
[Send] len=54, bss=0x00, port=5
[Recv] len=590, bss=0x00, port=2
536 bytes received!
[Send] len=54, bss=0x00, port=6
[Recv] len=590, bss=0x00, port=3
536 bytes received!
[Send] len=54, bss=0x00, port=7
[Recv] len=567, bss=0x00, port=4
[Send] len=54, bss=0x00, port=8
[Recv] len=590, bss=0x00, port=5
1049 bytes received!
TCP socket is closed! err=0, count=33209
[Send] len=54, bss=0x00, port=9
[Recv] len=60, bss=0x00, port=6
[Recv] len=42, bss=0x00, port=7
[Recv] len=42, bss=0x00, port=8
[Recv] len=42, bss=0x00, port=9
[Recv] len=352, bss=0x00, port=10
[Recv] len=42, bss=0x00, port=11
[Recv] len=92, bss=0x00, port=12
[Recv] len=92, bss=0x00, port=13
[Recv] len=42, bss=0x00, port=14
[Recv] len=92, bss=0x00, port=15
[Recv] len=42, bss=0x00, port=1
[Recv] len=42, bss=0x00, port=2
[Recv] len=42, bss=0x00, port=3

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章