0 / 0 / 2
Регистрация: 21.12.2016
Сообщений: 21

Как программно узнать tcp-соединение для некоторого приложения и потом замочить его?

13.10.2017, 21:19. Показов 1288. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем. Имеется некоторое приложение (пусть будет Project.exe), которое по TCP IP передает данные серверу. Как программно определить это TCP-соединение и принудительно завершить его?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.10.2017, 21:19
Ответы с готовыми решениями:

Как программно узнать, завис ли usb модем и отключить и снова включить его
Доброго времени суток уважаемые формучане :) Иногда usb модем нагревается и зависает. Задача стоит в том, как можно программно...

Как узнать расположение стронего приложения и его размер ?
Надо найти окно стороней программы(игры) и узнать его место расположение и размер! Хочу сделать штуку похожую на steam окошки в игре!

Программно отключить сообщение о выполнении запроса на удаление и потом снова его включить
Здравствуйте! Подскажите пожалуйста, как программно отключить сообщения о выполнении запроса на удаление и потом снова его включить?

2
232 / 135 / 19
Регистрация: 10.11.2015
Сообщений: 305
22.10.2017, 17:14
Цитата Сообщение от AlexAES Посмотреть сообщение
Как программно определить это TCP-соединение
GetExtendedTcpTable
Цитата Сообщение от AlexAES Посмотреть сообщение
и принудительно завершить его
SetTcpEntry
1
0 / 0 / 2
Регистрация: 21.12.2016
Сообщений: 21
22.10.2017, 23:22  [ТС]
Лучший ответ Сообщение было отмечено AlexAES как решение

Решение

Пытаюсь разобраться. Взял пример отсюда: http://forum.sources.ru/index.... ew=showall. Но билдер ругается: [Linker Error] 'D:\PROJECT_C\TCP_TABLE\IPHLPAPI.LIB' contains invalid OMF record, type 0x21 (possibly COFF)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
//---------------------
#include <Iprtrmib.h>
#include <Iphlpapi.h>
#include <winsock2.h>
#include <stdio.h>
 
#pragma comment(lib, "Iphlpapi.lib")
 
 
 
 
//----------
/*#include <winsock2.h>
#include <ws2tcpip.h>
#include <iphlpapi.h>
#include <stdio.h>
 
#pragma comment (lib, "IPHlpApi.lib" )
 
#pragma comment (lib, "ws2_32.lib" )
 
#define MALLOC (x) HeapAlloc (GetProcessHeap (), 0, (x))
#define FREE (x) HeapFree (GetProcessHeap (), 0, (x))
#include "Unit1.h"
#pragma hdrstop
//------------------
*/
 
 
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Memo1->Clear();
    _MIB_TCPTABLE *lpTCPTable = NULL;
    DWORD dwCount = 0;
 
    DWORD res = GetTcpTable(NULL, &dwCount, TRUE);
 
    if(res != ERROR_INSUFFICIENT_BUFFER)
        return ;
 
 
    lpTCPTable = (_MIB_TCPTABLE *)malloc(dwCount);
 
    res = GetTcpTable(lpTCPTable, &dwCount, TRUE);
    
    if(res != NO_ERROR)
    {      
        free(lpTCPTable);
        return ;
    }
 
    for(DWORD i = 0; i < (((PMIB_TCPTABLE)lpTCPTable)->dwNumEntries); i++)
    {
        MIB_TCPROW module = ((PMIB_TCPTABLE)lpTCPTable)->table[i];
        char szIp[64];
        short Port;
 
        if(module.dwLocalAddr == 0)
            strcpy(szIp, "127.0.0.1");
        else
            sprintf(szIp, "%d.%d.%d.%d", (htonl(module.dwLocalAddr) >> 24) & 0xFF,
                                        (htonl(module.dwLocalAddr) >> 16) & 0xFF,
                                        (htonl(module.dwLocalAddr) >> 8 ) & 0xFF,
                                        (htonl(module.dwLocalAddr)) & 0xFF);
 
 
        Port = htons((short)module.dwLocalPort);
        Memo1->Lines->Add("Ip " + AnsiString(szIp) + ", Port " + AnsiString(Port));
 
    }
 
    free(lpTCPTable);
 
    
    _MIB_UDPTABLE *lpUDPTable = NULL;
    dwCount = 0;
 
    res = GetUdpTable(NULL, &dwCount, TRUE);
 
    if(res != ERROR_INSUFFICIENT_BUFFER)
        return ;
 
    lpUDPTable = (_MIB_UDPTABLE *)malloc(dwCount);
 
    res = GetUdpTable(lpUDPTable, &dwCount, TRUE);
 
    if(res != NO_ERROR)
    {      
        free(lpUDPTable);
        return ;
    }
 
    for(DWORD i = 0; i < (((PMIB_UDPTABLE)lpUDPTable)->dwNumEntries); i++)
    {
        MIB_UDPROW module = ((PMIB_UDPTABLE)lpUDPTable)->table[i];
        char szIp[64];
        short Port;
 
 
        if(module.dwLocalAddr == 0)
            strcpy(szIp, "127.0.0.1");
        else
            sprintf(szIp, "%d.%d.%d.%d", (htonl(module.dwLocalAddr) >> 24) & 0xFF,
                                        (htonl(module.dwLocalAddr) >> 16) & 0xFF,
                                        (htonl(module.dwLocalAddr) >> 8 ) & 0xFF,
                                        (htonl(module.dwLocalAddr)) & 0xFF);
 
        Port = htons((short)module.dwLocalPort);
        Memo1->Lines->Add("Ip " + AnsiString(szIp) + ", Port " + AnsiString(Port));
 
    }
 
    free(lpUDPTable);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.10.2017, 23:22
Помогаю со студенческими работами здесь

Как программно узнать установленные патчи для windows?
как программно узнать установленный патчи(обновления) kb95xxxx для windows. Типа узнать весь список всех установленых обновлений....

Соединение tcp client и tcp server
accept(); bind(); connect(); listen(); socket(); Нужно расположить их в порядке в каком их вызывает (А) сервер (Б) клиент, чтобы...

Как долго можно держать TCP соединение?
Есть система, состоящая из диспетчера с нескольких удалённый точек, точки обмениваются данными с диспетчером через TCP (каждая точка имеет...

Программно узнать название minecraft сервера, зная его ip адрес
как программно узнать название minecraft сервера зная его ip адрес. Просто делаю программку по серверу minecraft, заранее благодарен.

Как корректно закрыть соединение TCP на стороне клиента
Код следующий: TcpClient client = new TcpClient(server, port); Byte data ; // Get a client stream for...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
Пишем адаптер для локального хранилища S3 на C#
stackOverflow 16.07.2025
Разработка современных приложений часто требует интеграции с объектными хранилищами, и Amazon S3 стал де-факто стандартом в этой области. Однако работа с облачными сервисами в процессе разработки. . .
Старые замки
kumehtar 16.07.2025
Смотрел тут фото, попались пара старых замков. И сразу бросилось в глаза из отличие. Например: Замок Бистон, в англии. Разрушенное сооружение. Но - не испорченное людьми, по крайней мере - на. . .
Java и Eclipse Store: Сверхбыстрые приложения с In-Memory DB
Javaican 15.07.2025
Eclipse Store — это микро-движок персистентности для Java, который позволяет хранить и извлекать нативные Java-объекты без необходимости преобразования данных или использования объектно-реляционного. . .
EmBitz, создание проекта, отладка, прошивка
locm 15.07.2025
Создание проекта для Blue Pill (STM32F103C8T6) в EmBitz 2. 30, написания кода blink, запуск отладки в ОЗУ, заливка релизной прошивки во flash используя ST-Link и др. . . .
Трассировка корутин Kotlin с OpenTelemetry
mobDevWorks 14.07.2025
Асинхронное программирование меняет правила игры, особенно когда речь заходит о трассировке операций. В Kotlin с его корутинами эта проблема приобретает особый оттенок, который я хотел бы детально. . .
Облачные приложения на Rust: руководство по архитектуре микросервисов
golander 13.07.2025
Когда я впервые взялся за проектирование облачной платформы для одного из наших клиентов, выбор стоял между привычными Go и Java. Но после нескольких месяцев разработки микросервисной системы,. . .
Как Node.js выполняет асинхронные операции
Reangularity 13.07.2025
Каждый раз, когда я рассказываю про Node. js, возникает один и тот же вопрос: "Как эта штука может быть быстрой, если JavaScript — однопоточный язык?" И это действительно кажется парадоксом. Ведь в. . .
Как писать чистый, тестируемый и качественный код на Python
py-thonny 12.07.2025
Помню свой первый проект на Python. Работал тогда быстро, грязно, лишь бы работало. Код был похож на запутанный клубок - переменные по одной букве, функции на 200 строк, комментарии отсутствовали как. . .
Blazor и контроллер сервопривода IoT Meadow Maple
Wired 11.07.2025
Я решил разобраться, как можно соединить современные веб-технологии с миром "железа". Интересная комбинация получилась из Blazor в качестве веб-интерфейса и микроконтроллера Meadow с его веб-сервером. . .
Генерация OpenQASM из кода Q#
EggHead 10.07.2025
Летом 2024-го я начал эксперименты с библиотекой Q# Bridge, и знаете что? Она оказалась просто находкой для тех, кто работает на стыке разных квантовых экосистем. Основная фишка этой библиотеки -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru