【程序】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

 

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