addi II 1 October 4 Posted October 4 · Report post не понятно, как узнать какой порт по умолчанию у 192.168.0.1 (IP адрес ноута) C:\Users\user>netstat -ano Активные подключения Имя Локальный адрес Внешний адрес Состояние PID TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 1224 TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4 TCP 0.0.0.0:5040 0.0.0.0:0 LISTENING 7672 TCP 0.0.0.0:41337 0.0.0.0:0 LISTENING 4980 TCP 0.0.0.0:49664 0.0.0.0:0 LISTENING 916 TCP 0.0.0.0:49665 0.0.0.0:0 LISTENING 976 TCP 0.0.0.0:49668 0.0.0.0:0 LISTENING 1848 TCP 0.0.0.0:49669 0.0.0.0:0 LISTENING 1980 TCP 0.0.0.0:49670 0.0.0.0:0 LISTENING 4004 TCP 0.0.0.0:49672 0.0.0.0:0 LISTENING 904 TCP 0.0.0.0:51688 0.0.0.0:0 LISTENING 24492 TCP 127.0.0.1:49689 127.0.0.1:49690 ESTABLISHED 1160 TCP 127.0.0.1:49690 127.0.0.1:49689 ESTABLISHED 1160 TCP 127.0.0.1:49693 127.0.0.1:49694 ESTABLISHED 1328 TCP 127.0.0.1:49694 127.0.0.1:49693 ESTABLISHED 1328 TCP 127.0.0.1:49739 127.0.0.1:49740 ESTABLISHED 4556 TCP 127.0.0.1:49740 127.0.0.1:49739 ESTABLISHED 4556 TCP 127.0.0.1:58893 127.0.0.1:58894 ESTABLISHED 3640 TCP 127.0.0.1:58894 127.0.0.1:58893 ESTABLISHED 3640 TCP 192.168.2.126:139 0.0.0.0:0 LISTENING 4 TCP 192.168.2.126:54261 139.45.206.154:443 CLOSE_WAIT 8696 TCP 192.168.2.126:54376 173.194.221.188:5228 ESTABLISHED 10348 TCP 192.168.2.126:54394 8.47.69.6:443 TIME_WAIT 0 TCP 192.168.2.126:54457 23.38.108.206:443 ESTABLISHED 10348 TCP 192.168.2.126:54477 8.8.8.8:443 TIME_WAIT 0 TCP 192.168.2.126:54478 216.239.34.157:443 TIME_WAIT 0 TCP 192.168.2.126:54479 8.8.4.4:443 TIME_WAIT 0 TCP 192.168.2.126:54484 34.149.50.64:443 ESTABLISHED 10348 TCP 192.168.2.126:54485 34.149.50.64:443 ESTABLISHED 10348 TCP 192.168.2.126:54486 34.149.50.64:443 ESTABLISHED 10348 TCP 192.168.2.126:54487 34.149.50.64:443 ESTABLISHED 10348 TCP 192.168.2.126:54488 34.149.50.64:443 ESTABLISHED 10348 TCP 192.168.2.126:54490 216.239.34.157:443 TIME_WAIT 0 TCP 192.168.2.126:54492 64.233.165.157:443 FIN_WAIT_1 10348 TCP 192.168.2.126:54494 64.233.165.157:443 ESTABLISHED 10348 TCP 192.168.2.126:54495 108.177.14.138:443 ESTABLISHED 10348 TCP 192.168.2.126:54496 142.251.1.198:443 ESTABLISHED 10348 TCP 192.168.2.126:54499 173.194.222.138:443 ESTABLISHED 10348 TCP 192.168.2.126:54502 173.194.222.138:443 ESTABLISHED 10348 TCP 192.168.2.126:54503 74.125.131.155:443 ESTABLISHED 10348 TCP 192.168.2.126:54504 8.8.4.4:443 ESTABLISHED 10348 TCP 192.168.2.126:54510 108.177.14.138:443 ESTABLISHED 10348 TCP 192.168.2.126:54511 108.177.14.138:443 ESTABLISHED 10348 TCP 192.168.2.126:54514 108.177.14.138:443 ESTABLISHED 10348 TCP 192.168.2.126:54515 209.85.233.157:443 ESTABLISHED 10348 TCP 192.168.2.126:58918 4.207.247.139:443 ESTABLISHED 4768 TCP 192.168.2.126:59024 4.207.247.138:443 ESTABLISHED 4768 TCP [::]:135 [::]:0 LISTENING 1224 TCP [::]:445 [::]:0 LISTENING 4 TCP [::]:41337 [::]:0 LISTENING 4980 TCP [::]:49664 [::]:0 LISTENING 916 TCP [::]:49665 [::]:0 LISTENING 976 TCP [::]:49668 [::]:0 LISTENING 1848 TCP [::]:49669 [::]:0 LISTENING 1980 TCP [::]:49670 [::]:0 LISTENING 4004 TCP [::]:49672 [::]:0 LISTENING 904 TCP [::]:51688 [::]:0 LISTENING 24492 TCP [::1]:49671 [::]:0 LISTENING 4580 UDP 0.0.0.0:123 *:* 12384 UDP 0.0.0.0:500 *:* 20524 UDP 0.0.0.0:4500 *:* 20524 UDP 0.0.0.0:5050 *:* 7672 UDP 0.0.0.0:5353 *:* 3416 UDP 0.0.0.0:5353 *:* 10348 UDP 0.0.0.0:5353 *:* 12464 UDP 0.0.0.0:5353 *:* 10348 UDP 0.0.0.0:5353 *:* 12464 UDP 0.0.0.0:5355 *:* 3416 UDP 0.0.0.0:55958 *:* 10348 UDP 0.0.0.0:56114 *:* 10348 UDP 0.0.0.0:65483 *:* 10348 UDP 127.0.0.1:1900 *:* 13276 UDP 127.0.0.1:53653 *:* 13276 UDP 127.0.0.1:61369 *:* 4640 UDP 192.168.2.126:137 *:* 4 UDP 192.168.2.126:138 *:* 4 UDP 192.168.2.126:1900 *:* 13276 UDP 192.168.2.126:53652 *:* 13276 UDP [::]:123 *:* 12384 UDP [::]:500 *:* 20524 UDP [::]:4500 *:* 20524 UDP [::]:5353 *:* 10348 UDP [::]:5353 *:* 12464 UDP [::]:5353 *:* 3416 UDP [::]:5355 *:* 3416 UDP [::1]:1900 *:* 13276 UDP [::1]:53651 *:* 13276 UDP [fe80::9858:2153:65cc:b961%8]:1900 *:* 13276 UDP [fe80::9858:2153:65cc:b961%8]:53650 *:* 13276 потому что C:\Users\user>telnet 192.168.0.1.80 "telnet" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. почему то не поддерживается Quote Share this post Link to post Share on other sites More sharing options...
HardWareMan 15 October 4 Posted October 4 · Report post Вместо телнета (который вырезали ещё с вин7) скачайте putty.exe он работает без установки. Quote Share this post Link to post Share on other sites More sharing options...
addi II 1 October 4 Posted October 4 · Report post нашелся порт 139 C:\Users\user>netstat -ano Активные подключения Имя Локальный адрес Внешний адрес Состояние PID TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 1224 TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4 TCP 0.0.0.0:5040 0.0.0.0:0 LISTENING 7672 TCP 0.0.0.0:7680 0.0.0.0:0 LISTENING 10560 TCP 0.0.0.0:41337 0.0.0.0:0 LISTENING 4980 TCP 0.0.0.0:49664 0.0.0.0:0 LISTENING 916 TCP 0.0.0.0:49665 0.0.0.0:0 LISTENING 976 TCP 0.0.0.0:49668 0.0.0.0:0 LISTENING 1848 TCP 0.0.0.0:49669 0.0.0.0:0 LISTENING 1980 TCP 0.0.0.0:49670 0.0.0.0:0 LISTENING 4004 TCP 0.0.0.0:49672 0.0.0.0:0 LISTENING 904 TCP 0.0.0.0:51688 0.0.0.0:0 LISTENING 24492 TCP 0.0.0.0:61234 0.0.0.0:0 LISTENING 24236 TCP 0.0.0.0:61235 0.0.0.0:0 LISTENING 24236 TCP 127.0.0.1:7184 0.0.0.0:0 LISTENING 15588 TCP 127.0.0.1:49689 127.0.0.1:49690 ESTABLISHED 1160 TCP 127.0.0.1:49690 127.0.0.1:49689 ESTABLISHED 1160 TCP 127.0.0.1:49693 127.0.0.1:49694 ESTABLISHED 1328 TCP 127.0.0.1:49694 127.0.0.1:49693 ESTABLISHED 1328 TCP 127.0.0.1:49739 127.0.0.1:49740 ESTABLISHED 4556 TCP 127.0.0.1:49740 127.0.0.1:49739 ESTABLISHED 4556 TCP 127.0.0.1:51936 127.0.0.1:7184 TIME_WAIT 0 TCP 127.0.0.1:51939 127.0.0.1:61234 ESTABLISHED 23764 TCP 127.0.0.1:54668 127.0.0.1:7184 TIME_WAIT 0 TCP 127.0.0.1:55146 127.0.0.1:61234 TIME_WAIT 0 TCP 127.0.0.1:55148 127.0.0.1:61234 TIME_WAIT 0 TCP 127.0.0.1:58349 127.0.0.1:61234 ESTABLISHED 22132 TCP 127.0.0.1:61234 127.0.0.1:51939 ESTABLISHED 24236 TCP 127.0.0.1:61234 127.0.0.1:58349 ESTABLISHED 24236 TCP 127.0.0.1:63623 127.0.0.1:63624 ESTABLISHED 3640 TCP 127.0.0.1:63624 127.0.0.1:63623 ESTABLISHED 3640 TCP 192.168.0.1:139 0.0.0.0:0 LISTENING 4 TCP 192.168.0.1:51938 172.16.0.2:1688 SYN_SENT 7272 TCP [::]:135 [::]:0 LISTENING 1224 TCP [::]:445 [::]:0 LISTENING 4 TCP [::]:7680 [::]:0 LISTENING 10560 TCP [::]:41337 [::]:0 LISTENING 4980 TCP [::]:49664 [::]:0 LISTENING 916 TCP [::]:49665 [::]:0 LISTENING 976 TCP [::]:49668 [::]:0 LISTENING 1848 TCP [::]:49669 [::]:0 LISTENING 1980 TCP [::]:49670 [::]:0 LISTENING 4004 TCP [::]:49672 [::]:0 LISTENING 904 TCP [::]:51688 [::]:0 LISTENING 24492 TCP [::1]:49671 [::]:0 LISTENING 4580 UDP 0.0.0.0:123 *:* 12384 UDP 0.0.0.0:500 *:* 20524 UDP 0.0.0.0:4500 *:* 20524 UDP 0.0.0.0:5050 *:* 7672 UDP 0.0.0.0:5353 *:* 10348 UDP 0.0.0.0:5353 *:* 3416 UDP 0.0.0.0:5353 *:* 12464 UDP 0.0.0.0:5353 *:* 12464 UDP 0.0.0.0:5353 *:* 10348 UDP 0.0.0.0:5355 *:* 3416 UDP 127.0.0.1:1900 *:* 13276 UDP 127.0.0.1:59013 *:* 13276 UDP 127.0.0.1:61369 *:* 4640 UDP 192.168.0.1:137 *:* 4 UDP 192.168.0.1:138 *:* 4 UDP 192.168.0.1:1900 *:* 13276 UDP 192.168.0.1:59012 *:* 13276 UDP [::]:123 *:* 12384 UDP [::]:500 *:* 20524 UDP [::]:4500 *:* 20524 UDP [::]:5353 *:* 12464 UDP [::]:5353 *:* 3416 UDP [::]:5353 *:* 10348 UDP [::]:5355 *:* 3416 UDP [::1]:1900 *:* 13276 UDP [::1]:59011 *:* 13276 UDP [fe80::d94:46ec:cb46:2490%4]:546 *:* 972 UDP [fe80::d94:46ec:cb46:2490%4]:1900 *:* 13276 UDP [fe80::d94:46ec:cb46:2490%4]:59010 *:* 13276 C:\Users\user>ping 192.168.0.40 Обмен пакетами с 192.168.0.40 по с 32 байтами данных: Ответ от 192.168.0.40: число байт=32 время=24мс TTL=255 Ответ от 192.168.0.40: число байт=32 время=21мс TTL=255 Ответ от 192.168.0.40: число байт=32 время=15мс TTL=255 Ответ от 192.168.0.40: число байт=32 время=12мс TTL=255 поменял код /* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : main.c * @brief : Main program body ****************************************************************************** * @attention * * Copyright (c) 2025 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file * in the root directory of this software component. * If no LICENSE file comes with this software, it is provided AS-IS. * ****************************************************************************** */ /* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include "main.h" #include "lwip.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ #include "lwip/tcp.h" /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ /* USER CODE BEGIN PTD */ /* USER CODE END PTD */ /* Private define ------------------------------------------------------------*/ /* USER CODE BEGIN PD */ /* USER CODE END PD */ /* Private macro -------------------------------------------------------------*/ /* USER CODE BEGIN PM */ #define SERVER_IP_ADDR "192.168.0.1" // Replace with your server IP address #define SERVER_PORT 139//389 //5024 //80 // Replace with your server port /* USER CODE END PM */ /* Private variables ---------------------------------------------------------*/ UART_HandleTypeDef huart3; extern struct netif gnetif; extern unsigned char con_est; unsigned char con_was; unsigned char ok; struct pbuf *ptr; err_t err1; err_t err3; err_t err4; struct netconn *client_conn; extern echoclient_pcb; unsigned char data2[100]; struct tcp_pcb *pcb; ip_addr_t server_ip; PCD_HandleTypeDef hpcd_USB_OTG_FS; /* USER CODE BEGIN PV */ /* USER CODE END PV */ /* Private function prototypes -----------------------------------------------*/ void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_USART3_UART_Init(void); static void MX_USB_OTG_FS_PCD_Init(void); /* USER CODE BEGIN PFP */ void tcp_client_connect(void); err_t tcp_client_connected2(void *arg, struct tcp_pcb *tpcb, err_t err); err_t tcp_client_recv2(void *arg, struct tcp_pcb *tpcb, struct pbuf *p, err_t err); /* USER CODE END PFP */ /* Private user code ---------------------------------------------------------*/ /* USER CODE BEGIN 0 */ static void Netif_Config(void); /* USER CODE END 0 */ /** * @brief The application entry point. * @retval int */ int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_USART3_UART_Init(); MX_USB_OTG_FS_PCD_Init(); MX_LWIP_Init(); /* USER CODE BEGIN 2 */ /// Netif_Config(); // Wait for the network interface to be up while (netif_is_up(&gnetif) == 0) { HAL_Delay(100); } ///ok = 0; tcp_client_connect(); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { ///if(ok == 0) MX_LWIP_Process(); HAL_Delay(100); const char *msg3 = "Hello, Server3!"; err3 = tcp_write(pcb, msg3, strlen(msg3), TCP_WRITE_FLAG_COPY); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ } /** * @brief System Clock Configuration * @retval None */ void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; /** Configure the main internal regulator output voltage */ __HAL_RCC_PWR_CLK_ENABLE(); __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); /** Initializes the RCC Oscillators according to the specified parameters * in the RCC_OscInitTypeDef structure. */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.HSEState = RCC_HSE_ON; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; RCC_OscInitStruct.PLL.PLLM = 4; RCC_OscInitStruct.PLL.PLLN = 168; RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; RCC_OscInitStruct.PLL.PLLQ = 7; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { Error_Handler(); } /** Initializes the CPU, AHB and APB buses clocks */ RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2; if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK) { Error_Handler(); } } /** * @brief USART3 Initialization Function * @param None * @retval None */ static void MX_USART3_UART_Init(void) { /* USER CODE BEGIN USART3_Init 0 */ /* USER CODE END USART3_Init 0 */ /* USER CODE BEGIN USART3_Init 1 */ /* USER CODE END USART3_Init 1 */ huart3.Instance = USART3; huart3.Init.BaudRate = 115200; huart3.Init.WordLength = UART_WORDLENGTH_8B; huart3.Init.StopBits = UART_STOPBITS_1; huart3.Init.Parity = UART_PARITY_NONE; huart3.Init.Mode = UART_MODE_TX_RX; huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart3.Init.OverSampling = UART_OVERSAMPLING_16; if (HAL_UART_Init(&huart3) != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN USART3_Init 2 */ /* USER CODE END USART3_Init 2 */ } /** * @brief USB_OTG_FS Initialization Function * @param None * @retval None */ static void MX_USB_OTG_FS_PCD_Init(void) { /* USER CODE BEGIN USB_OTG_FS_Init 0 */ /* USER CODE END USB_OTG_FS_Init 0 */ /* USER CODE BEGIN USB_OTG_FS_Init 1 */ /* USER CODE END USB_OTG_FS_Init 1 */ hpcd_USB_OTG_FS.Instance = USB_OTG_FS; hpcd_USB_OTG_FS.Init.dev_endpoints = 4; hpcd_USB_OTG_FS.Init.speed = PCD_SPEED_FULL; hpcd_USB_OTG_FS.Init.dma_enable = DISABLE; hpcd_USB_OTG_FS.Init.phy_itface = PCD_PHY_EMBEDDED; hpcd_USB_OTG_FS.Init.Sof_enable = DISABLE; hpcd_USB_OTG_FS.Init.low_power_enable = DISABLE; hpcd_USB_OTG_FS.Init.lpm_enable = DISABLE; hpcd_USB_OTG_FS.Init.vbus_sensing_enable = ENABLE; hpcd_USB_OTG_FS.Init.use_dedicated_ep1 = DISABLE; if (HAL_PCD_Init(&hpcd_USB_OTG_FS) != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN USB_OTG_FS_Init 2 */ /* USER CODE END USB_OTG_FS_Init 2 */ } /** * @brief GPIO Initialization Function * @param None * @retval None */ static void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct = {0}; /* USER CODE BEGIN MX_GPIO_Init_1 */ /* USER CODE END MX_GPIO_Init_1 */ /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOC_CLK_ENABLE(); __HAL_RCC_GPIOH_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE(); __HAL_RCC_GPIOD_CLK_ENABLE(); __HAL_RCC_GPIOG_CLK_ENABLE(); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOB, LD3_Pin|LD2_Pin, GPIO_PIN_RESET); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(USB_PowerSwitchOn_GPIO_Port, USB_PowerSwitchOn_Pin, GPIO_PIN_RESET); /*Configure GPIO pin : USER_Btn_Pin */ GPIO_InitStruct.Pin = USER_Btn_Pin; GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(USER_Btn_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pins : LD3_Pin LD2_Pin */ GPIO_InitStruct.Pin = LD3_Pin|LD2_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); /*Configure GPIO pin : USB_PowerSwitchOn_Pin */ GPIO_InitStruct.Pin = USB_PowerSwitchOn_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(USB_PowerSwitchOn_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pin : USB_OverCurrent_Pin */ GPIO_InitStruct.Pin = USB_OverCurrent_Pin; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(USB_OverCurrent_GPIO_Port, &GPIO_InitStruct); /* USER CODE BEGIN MX_GPIO_Init_2 */ /* USER CODE END MX_GPIO_Init_2 */ } /* USER CODE BEGIN 4 */ void tcp_client_connect(void) { pcb = tcp_new(); if (pcb == NULL) { Error_Handler(); } ipaddr_aton(SERVER_IP_ADDR, &server_ip); tcp_err(pcb,err4); tcp_connect(pcb, &server_ip, SERVER_PORT, tcp_client_connected2); const char *msg = "Hello, Server1!"; err3 = tcp_write(pcb, msg, strlen(msg), TCP_WRITE_FLAG_COPY); __asm("NOP"); } err_t tcp_client_connected2(void *arg, struct tcp_pcb *tpcb, err_t err) { if (err != ERR_OK) { tcp_close(tpcb); Error_Handler(); return err; } const char *msg = "Hello, Server2!"; tcp_write(tpcb, msg, strlen(msg), TCP_WRITE_FLAG_COPY); tcp_output(tpcb); tcp_recv(tpcb, tcp_client_recv2); __asm("NOP"); ///ok = 1; return ERR_OK; } err_t tcp_client_recv2(void *arg, struct tcp_pcb *tpcb, struct pbuf *p, err_t err) { if (p == NULL) { tcp_close(tpcb); return ERR_OK; } // Process received data printf("Received: %.*s\n", p->len, (char*)p->payload); pbuf_free(p); return ERR_OK; } static void Netif_Config(void) { ip_addr_t ipaddr; ip_addr_t netmask; ip_addr_t gw; #if LWIP_DHCP ip_addr_set_zero_ip4(&ipaddr); ip_addr_set_zero_ip4(&netmask); ip_addr_set_zero_ip4(&gw); #else /* IP address default setting */ IP4_ADDR(&ipaddr, IP_ADDR0, IP_ADDR1, IP_ADDR2, IP_ADDR3); IP4_ADDR(&netmask, NETMASK_ADDR0, NETMASK_ADDR1 , NETMASK_ADDR2, NETMASK_ADDR3); IP4_ADDR(&gw, GW_ADDR0, GW_ADDR1, GW_ADDR2, GW_ADDR3); #endif /* add the network interface */ netif_add(&gnetif, &ipaddr, &netmask, &gw, NULL, ðernetif_init, ðernet_input); /* Registers the default network interface */ netif_set_default(&gnetif); ethernet_link_status_updated(&gnetif); #if LWIP_NETIF_LINK_CALLBACK netif_set_link_callback(&gnetif, ethernet_link_status_updated); #endif } /* USER CODE END 4 */ /** * @brief This function is executed in case of error occurrence. * @retval None */ void Error_Handler(void) { /* USER CODE BEGIN Error_Handler_Debug */ /* User can add his own implementation to report the HAL error return state */ __disable_irq(); while (1) { } /* USER CODE END Error_Handler_Debug */ } #ifdef USE_FULL_ASSERT /** * @brief Reports the name of the source file and the source line number * where the assert_param error has occurred. * @param file: pointer to the source file name * @param line: assert_param error line source number * @retval None */ void assert_failed(uint8_t *file, uint32_t line) { /* USER CODE BEGIN 6 */ /* User can add his own implementation to report the file name and line number, ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ /* USER CODE END 6 */ } #endif /* USE_FULL_ASSERT */ посылка есть но почему то нет в while pcap5.rar Quote Share this post Link to post Share on other sites More sharing options...
addi II 1 October 5 Posted October 5 · Report post добавил tcp_output но все равно в цикле нет передачи /* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : main.c * @brief : Main program body ****************************************************************************** * @attention * * Copyright (c) 2025 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file * in the root directory of this software component. * If no LICENSE file comes with this software, it is provided AS-IS. * ****************************************************************************** */ /* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include "main.h" #include "lwip.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ #include "lwip/tcp.h" /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ /* USER CODE BEGIN PTD */ /* USER CODE END PTD */ /* Private define ------------------------------------------------------------*/ /* USER CODE BEGIN PD */ /* USER CODE END PD */ /* Private macro -------------------------------------------------------------*/ /* USER CODE BEGIN PM */ #define SERVER_IP_ADDR "192.168.0.1" // Replace with your server IP address #define SERVER_PORT 139//389 //5024 //80 // Replace with your server port /* USER CODE END PM */ /* Private variables ---------------------------------------------------------*/ UART_HandleTypeDef huart3; extern struct netif gnetif; extern unsigned char con_est; unsigned char con_was; unsigned char ok; struct pbuf *ptr; err_t err1; err_t err3; err_t err4; err_t err5; struct netconn *client_conn; extern echoclient_pcb; unsigned char data2[100]; struct tcp_pcb *pcb; ip_addr_t server_ip; PCD_HandleTypeDef hpcd_USB_OTG_FS; /* USER CODE BEGIN PV */ /* USER CODE END PV */ /* Private function prototypes -----------------------------------------------*/ void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_USART3_UART_Init(void); static void MX_USB_OTG_FS_PCD_Init(void); /* USER CODE BEGIN PFP */ void tcp_client_connect(void); err_t tcp_client_connected2(void *arg, struct tcp_pcb *tpcb, err_t err); err_t tcp_client_recv2(void *arg, struct tcp_pcb *tpcb, struct pbuf *p, err_t err); /* USER CODE END PFP */ /* Private user code ---------------------------------------------------------*/ /* USER CODE BEGIN 0 */ static void Netif_Config(void); /* USER CODE END 0 */ /** * @brief The application entry point. * @retval int */ int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_USART3_UART_Init(); MX_USB_OTG_FS_PCD_Init(); MX_LWIP_Init(); /* USER CODE BEGIN 2 */ /// Netif_Config(); // Wait for the network interface to be up while (netif_is_up(&gnetif) == 0) { HAL_Delay(100); } ///ok = 0; tcp_client_connect(); const char *msg3 = "Hello, Server3!"; /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { ///if(ok == 0) MX_LWIP_Process(); HAL_Delay(100); err3 = tcp_write(pcb, msg3, strlen(msg3), TCP_WRITE_FLAG_COPY); err5 = tcp_output(pcb); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ } /** * @brief System Clock Configuration * @retval None */ void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; /** Configure the main internal regulator output voltage */ __HAL_RCC_PWR_CLK_ENABLE(); __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); /** Initializes the RCC Oscillators according to the specified parameters * in the RCC_OscInitTypeDef structure. */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.HSEState = RCC_HSE_ON; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; RCC_OscInitStruct.PLL.PLLM = 4; RCC_OscInitStruct.PLL.PLLN = 168; RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; RCC_OscInitStruct.PLL.PLLQ = 7; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { Error_Handler(); } /** Initializes the CPU, AHB and APB buses clocks */ RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2; if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK) { Error_Handler(); } } /** * @brief USART3 Initialization Function * @param None * @retval None */ static void MX_USART3_UART_Init(void) { /* USER CODE BEGIN USART3_Init 0 */ /* USER CODE END USART3_Init 0 */ /* USER CODE BEGIN USART3_Init 1 */ /* USER CODE END USART3_Init 1 */ huart3.Instance = USART3; huart3.Init.BaudRate = 115200; huart3.Init.WordLength = UART_WORDLENGTH_8B; huart3.Init.StopBits = UART_STOPBITS_1; huart3.Init.Parity = UART_PARITY_NONE; huart3.Init.Mode = UART_MODE_TX_RX; huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart3.Init.OverSampling = UART_OVERSAMPLING_16; if (HAL_UART_Init(&huart3) != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN USART3_Init 2 */ /* USER CODE END USART3_Init 2 */ } /** * @brief USB_OTG_FS Initialization Function * @param None * @retval None */ static void MX_USB_OTG_FS_PCD_Init(void) { /* USER CODE BEGIN USB_OTG_FS_Init 0 */ /* USER CODE END USB_OTG_FS_Init 0 */ /* USER CODE BEGIN USB_OTG_FS_Init 1 */ /* USER CODE END USB_OTG_FS_Init 1 */ hpcd_USB_OTG_FS.Instance = USB_OTG_FS; hpcd_USB_OTG_FS.Init.dev_endpoints = 4; hpcd_USB_OTG_FS.Init.speed = PCD_SPEED_FULL; hpcd_USB_OTG_FS.Init.dma_enable = DISABLE; hpcd_USB_OTG_FS.Init.phy_itface = PCD_PHY_EMBEDDED; hpcd_USB_OTG_FS.Init.Sof_enable = DISABLE; hpcd_USB_OTG_FS.Init.low_power_enable = DISABLE; hpcd_USB_OTG_FS.Init.lpm_enable = DISABLE; hpcd_USB_OTG_FS.Init.vbus_sensing_enable = ENABLE; hpcd_USB_OTG_FS.Init.use_dedicated_ep1 = DISABLE; if (HAL_PCD_Init(&hpcd_USB_OTG_FS) != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN USB_OTG_FS_Init 2 */ /* USER CODE END USB_OTG_FS_Init 2 */ } /** * @brief GPIO Initialization Function * @param None * @retval None */ static void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct = {0}; /* USER CODE BEGIN MX_GPIO_Init_1 */ /* USER CODE END MX_GPIO_Init_1 */ /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOC_CLK_ENABLE(); __HAL_RCC_GPIOH_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE(); __HAL_RCC_GPIOD_CLK_ENABLE(); __HAL_RCC_GPIOG_CLK_ENABLE(); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOB, LD3_Pin|LD2_Pin, GPIO_PIN_RESET); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(USB_PowerSwitchOn_GPIO_Port, USB_PowerSwitchOn_Pin, GPIO_PIN_RESET); /*Configure GPIO pin : USER_Btn_Pin */ GPIO_InitStruct.Pin = USER_Btn_Pin; GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(USER_Btn_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pins : LD3_Pin LD2_Pin */ GPIO_InitStruct.Pin = LD3_Pin|LD2_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); /*Configure GPIO pin : USB_PowerSwitchOn_Pin */ GPIO_InitStruct.Pin = USB_PowerSwitchOn_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(USB_PowerSwitchOn_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pin : USB_OverCurrent_Pin */ GPIO_InitStruct.Pin = USB_OverCurrent_Pin; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(USB_OverCurrent_GPIO_Port, &GPIO_InitStruct); /* USER CODE BEGIN MX_GPIO_Init_2 */ /* USER CODE END MX_GPIO_Init_2 */ } /* USER CODE BEGIN 4 */ void tcp_client_connect(void) { pcb = tcp_new(); if (pcb == NULL) { Error_Handler(); } ipaddr_aton(SERVER_IP_ADDR, &server_ip); tcp_err(pcb,err4); tcp_connect(pcb, &server_ip, SERVER_PORT, tcp_client_connected2); const char *msg = "Hello, Server1!"; err3 = tcp_write(pcb, msg, strlen(msg), TCP_WRITE_FLAG_COPY); err5 = tcp_output(pcb); __asm("NOP"); } err_t tcp_client_connected2(void *arg, struct tcp_pcb *tpcb, err_t err) { if (err != ERR_OK) { tcp_close(tpcb); Error_Handler(); return err; } const char *msg2 = "Hello, Server2!"; tcp_write(tpcb, msg2, strlen(msg2), TCP_WRITE_FLAG_COPY); err5 = tcp_output(pcb); tcp_recv(tpcb, tcp_client_recv2); __asm("NOP"); ///ok = 1; return ERR_OK; } err_t tcp_client_recv2(void *arg, struct tcp_pcb *tpcb, struct pbuf *p, err_t err) { if (p == NULL) { tcp_close(tpcb); return ERR_OK; } // Process received data printf("Received: %.*s\n", p->len, (char*)p->payload); pbuf_free(p); return ERR_OK; } static void Netif_Config(void) { ip_addr_t ipaddr; ip_addr_t netmask; ip_addr_t gw; #if LWIP_DHCP ip_addr_set_zero_ip4(&ipaddr); ip_addr_set_zero_ip4(&netmask); ip_addr_set_zero_ip4(&gw); #else /* IP address default setting */ IP4_ADDR(&ipaddr, IP_ADDR0, IP_ADDR1, IP_ADDR2, IP_ADDR3); IP4_ADDR(&netmask, NETMASK_ADDR0, NETMASK_ADDR1 , NETMASK_ADDR2, NETMASK_ADDR3); IP4_ADDR(&gw, GW_ADDR0, GW_ADDR1, GW_ADDR2, GW_ADDR3); #endif /* add the network interface */ netif_add(&gnetif, &ipaddr, &netmask, &gw, NULL, ðernetif_init, ðernet_input); /* Registers the default network interface */ netif_set_default(&gnetif); ethernet_link_status_updated(&gnetif); #if LWIP_NETIF_LINK_CALLBACK netif_set_link_callback(&gnetif, ethernet_link_status_updated); #endif } /* USER CODE END 4 */ /** * @brief This function is executed in case of error occurrence. * @retval None */ void Error_Handler(void) { /* USER CODE BEGIN Error_Handler_Debug */ /* User can add his own implementation to report the HAL error return state */ __disable_irq(); while (1) { } /* USER CODE END Error_Handler_Debug */ } #ifdef USE_FULL_ASSERT /** * @brief Reports the name of the source file and the source line number * where the assert_param error has occurred. * @param file: pointer to the source file name * @param line: assert_param error line source number * @retval None */ void assert_failed(uint8_t *file, uint32_t line) { /* USER CODE BEGIN 6 */ /* User can add his own implementation to report the file name and line number, ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ /* USER CODE END 6 */ } #endif /* USE_FULL_ASSERT */ pcap6.rar Quote Share this post Link to post Share on other sites More sharing options...
addi II 1 October 6 Posted October 6 · Report post при этом возвращаемые значения везде 0 кроме tcp_write в цикле Quote Share this post Link to post Share on other sites More sharing options...
arhiv6 25 October 6 Posted October 6 · Report post В 04.10.2025 в 22:38, addi II сказал: нашелся порт 139 1) Что значит "нашёлся"? Вы же подключаетесь к серверу, запущенному на ПК, а значит точно должны знать, кокой у него порт. 2) Убедитесь в работоспособности вашего сервера, подключившись к нему с другого ПК, только после этого пробуйте подключиться с платы. 3) Включите наконец уже вывод информации в LWIP, это поможет найти проблемы с TCP, если они есть. 4) Пожалуйста, имейте уважение к другим участникам общения и прячьте простыни кода и под спойлеры! Quote Share this post Link to post Share on other sites More sharing options...
addi II 1 October 6 Posted October 6 · Report post 13 hours ago, arhiv6 said: 1) Что значит "нашёлся"? Вы же подключаетесь к серверу, запущенному на ПК, а значит точно должны знать, кокой у него порт. 2) Убедитесь в работоспособности вашего сервера, подключившись к нему с другого ПК, только после этого пробуйте подключиться с платы. 3) Включите наконец уже вывод информации в LWIP, это поможет найти проблемы с TCP, если они есть. 4) Пожалуйста, имейте уважение к другим участникам общения и прячьте простыни кода и под спойлеры! прошу прощения, я не разворачивал никакой сервер на ноуте(ПК), я думал что это не является обязательным чтобы проверить передачу с платы посредством снифера поэтому я подсмотрел какой доступный порт в сетке плата- ПК я не совсем понял как это "включить вывод информации в LWIP" п.с. кто-нибуль напомните пожалуйста как добавлять полосу прокрутки Quote Share this post Link to post Share on other sites More sharing options...
arhiv6 25 October 7 Posted October 7 · Report post Попробуйте EchoTool (вот ссылка на exe). Запустите его на ПК на порту 9999 командой: Цитата echotool /p tcp /s 9999 При подключении к нему любого tcp клиента он выведет в консоль сообщение об этом. Так же если ему по TCP прислать строку текста он отобразит его в консоли и пошлёт обратно. По поводу отладки в LWIP я уже давал ссылку: https://microsin.net/programming/arm/lwip-debug-output.html По поводу полосы прокрутки: её нет. Вставляйте Спойлер, а в него уже Блок Кода: Quote Share this post Link to post Share on other sites More sharing options...
addi II 1 October 7 Posted October 7 (edited) · Report post Спасибо большое! Теперь есть в цикле передача строки и она не абортится правда почему то строчка передается кривая, - присутствует пробел в слове Hello, он же эхом возвращается или она так интерпретируется в акуле? В командной строке все норм C:\Users\user>echotool /p tcp /s 9999 Waiting for TCP connection on port 9999. Press any key to exit. Client 192.168.0.40:52432 accepted at 1:08:30 1:08:30 received [Hello, Server1!Hello, Server3!Hello, Server2!] 1:08:32 received [Hello, Server3!] 1:08:33 received [Hello, Server3!] 1:08:34 received [Hello, Server3!] 1:08:35 received [Hello, Server3!] 1:08:36 received [Hello, Server3!] 1:08:37 received [Hello, Server3!] 1:08:38 received [Hello, Server3!] 1:08:38 received [Hello, Server3!] 1:08:39 received [Hello, Server3!] 1:08:40 received [Hello, Server3!] 1:08:41 received [Hello, Server3!] 1:08:42 received [Hello, Server3!] 1:08:43 received [Hello, Server3!] 1:08:44 received [Hello, Server3!] 1:08:45 received [Hello, Server3!] Session closed by peer. и я не совсем понял почему порт 9999 сработал, когда как порт 139 не сработал, хотя он видится netstat и еще вопрос, как мне теперь договориться с целевым прибором Сейчас я ноутбуком имитировал его Теперь мне надо поменять адреса и попробовать соединиться платой nucleo с целевым прибором Этот прибор с ноутом соединяется без всякого указания порта У прибора следующие настройки: как я понимаю он сервер, я должен быть клиентом, как в связи с ноутом при имитации Но какой тогда порт мне использовать? Спасибо! Edited October 7 by addi II Quote Share this post Link to post Share on other sites More sharing options...
arhiv6 25 October 8 Posted October 8 · Report post В 08.10.2025 в 05:20, addi II сказал: правда почему то строчка передается кривая, - присутствует пробел в слове Hello, он же эхом возвращается или она так интерпретируется в акуле? Это просто отображение такое. В 08.10.2025 в 05:20, addi II сказал: и я не совсем понял почему порт 9999 сработал, когда как порт 139 не сработал Не знаю, кто именно слушал 139 порт, может он и не собирался отвечать на попытки подключения к нему. В 08.10.2025 в 05:20, addi II сказал: Этот прибор с ноутом соединяется без всякого указания порта. У прибора следующие настройки: ... Но какой тогда порт мне использовать? Прямо там на вашем изображении указаны порты для обоих протоколов, даже в двух местах написано, читайте внимательно. Задача не выглядит сложной. Подключайтесь по telnet к прибору (по сути просто подключитесь по TCP), после подключения прибор сам пришлёт вам строку - приглашение (в вашем случае это будет что-то вроде "SCPI>"). После этого проверьте что прибор корректно отвечает на SCPI команды, начните с простейшей "*IDN?\n", в ответ на которую прибор пришлёт в текстовом виде информацию о себе. Quote Share this post Link to post Share on other sites More sharing options...
addi II 1 October 8 Posted October 8 · Report post Спасибо большое за поддержку!! Тогда попробую связаться с ним по 5024 Quote Share this post Link to post Share on other sites More sharing options...