C# проблемы с Тср клиентом

💡 Усі статті, обговорення, новини про .NET — в одному місці. Приєднуйтесь до .NET спільноти!

у меня маленькая проблемка... я написал примитивного клиента и сервера... и когда я их тестирую на одном компе через localhost или через глобальный IP все нормально..., но когда пробую подсоединить клиента с другого компа то пишет что невозможно подключится потому что небыло отклика от сервера...

s44.radikal.ru/...​/0904/8d/48698c89d00c.jpg

я полазил по мсдн, нарыл там прогу, откомпилировал ее и всеравно то же самое...

потом я нарыл на разных форумах то, что это через фаервол...

хм... откючив его (и антивирус и сервис в винде) ошибка всеравно продолжала появляться...

помогите... я не могу понять что с этим делать...

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
\\ тупой с#... я писал мини аську на джаве... и там хватало только вот этого статического ір...

Зачьот!!!

впринципе да..., но гугл не обижай...

Вот оно поколение гугла, сборщика мусора и готовых фреймворков: (

ладно... всем спасибо... извините что голову морочил... буду учить комп. сети...


Soft

на джаве я использовал статический ip...

А я вам вопрос по поводу динамического IP не зря задавал. Это не безвыходная ситуация, но лучше почитайте литературу, чтобы понимать как работают протоколы. На каком бы вы языке не писали свою программу, TCP/IP протокол от этого по другому работать не будет.


nobody 24 мин. назад

\\ тупой с#... я писал мини аську на джаве... и там хватало только вот этого статического ір...

Мини-аська на любом языке также бы работала при динамическом IP. IP-протокол от языка не зависит.


#
nobody 19 мин. назад
ох... кажись разобрался..., но появилась новая проблема...
когда я потключаюсь к инету мне дается 2 IP... одна статическая другая динамическая...
статическкая ато типа то что я прописывал... “192.168.1.1”...,
а тут нада использовать не этот адрес..., а тот что динамически меняется при каждом потключении...
отсюда проблема... НУ КАК КЛИЕНТ БУДЕТ ЗНАТЬ какой ір имеет сервер когда захочет подключится к нему например через день или 2...

\\ тупой с#... я писал мини аську на джаве... и там хватало только вот этого статического ір...

У вас на сервере динамический белый IP и никак нельзя заказать его фиксированным? Тяжёлый случай.

Ну тогда можно на каком-то из открытых ресурсов при старте сервера в txt файл писать текущий белый IP через php-скрипт, а клиенты его будут читать. Но гораздо проще купить белый статический IP, в нашей сети это стоит 10 грн в месяц или 100 в год, что довольно дёшево.

ох... кажись разобрался..., но появилась новая проблема...
когда я потключаюсь к инету мне дается 2 IP... одна статическая другая динамическая...
статическкая ато типа то что я прописывал... “192.168.1.1”...,
а тут нада использовать не этот адрес..., а тот что динамически меняется при каждом потключении...
отсюда проблема... НУ КАК КЛИЕНТ БУДЕТ ЗНАТЬ какой ір имеет сервер когда захочет подключится к нему например через день или 2...

\\ тупой с#... я писал мини аську на джаве... и там хватало только вот этого статического ір...


nobody 30 мин. назад,
но он тоже ничего не дал...все та же ошибка...\

от интересно где мне 100% рабочий ТСР сервер достать...?

Вот вам tiny http сервер

home.lanck.net/...f/srv/index.htm

Если у вас сложности с telnet то попробуйте эту программу задайте адрес сервера и выложите сюда лог
SuperScan
www.snapfiles.com/.../superscan.html

Если и это не поможет то тогда учится, учится и учится. Промышленное ПО Вам пока пока писать рано.


nobody 21 мин. назад
нащет фаервола...

я уже спрашивал, а других форумах... мне дали такой код...

Фаерволы бывают разные, не факт что там стандартный.

nobody 23 мин. назад
через telnet пробывал на своем...

просто пишет «соединение адрес-сервера»..., а потом вырубает...

А по поводу этого как быстро вырубает? Тоесть есть коннект или нет?

Думаю, вам по сетям книгу нужно почитать. Например эту bookzone.com.ua/catalog.php bid=15740 А то без знания как оно работает у вас оно не заработает.

нащет фаервола...
я уже спрашивал, а других форумах... мне дали такой код...
static void addProg ()
{
string progPath = Application.ExecutablePath;
string progName = “My Program”;
Process adding = new Process ();
adding.StartInfo.Arguments = “firewall add allowedprogram \”" + progPath + “\” \“" + progName + “\” ENABLE“;
adding.StartInfo.FileName = “C: \\Windows\\System32\\netsh.exe”;
adding.Start (); } ,
но он тоже ничего не дал...все та же ошибка...\

от интересно где мне 100% рабочий ТСР сервер достать...?

через telnet пробывал на своем...

просто пишет «соединение адрес-сервера»..., а потом вырубает...


#
nobody 1 час назад
порты пробывал разные... 8089 11000 13000 и все равно одна и та же ошибка...

на серверском компе я просто в настройках вписал этот IP и он у меня не меняется...

Попробуй установить какой-то сторонний гарантированно рабочий TCP сервер на 80 порт и получить подключение к нему через telnet. Есть подозрение что проблема или в настройках сервера или фаерволе, может между клиентом и сервером.

порты пробывал разные... 8089 11000 13000 и все равно одна и та же ошибка...

на серверском компе я просто в настройках вписал этот IP и он у меня не меняется...

На всякий случай еще один вопрос: клиент и сервер находятся в одной сети? Я к тому, что сервер случаем не удаленная машина с динамическим IP?

+1 к смене порта. Сталкивался с такой ерундой, когда с сокетами игрался.

Ты бы 80 порт сменил бы. Должно работать

private void Sever_Click (object sender, EventArgs e)
{
this.BackColor = Color.GreenYellow;
StartServerThread = new Thread (new ThreadStart (ListenForCustomer));
StartServerThread.Start ();
}
public void ListenForCustomer ()
{
try
{
Listener = new TcpListener (LocalPort);
Listener.Start ();
while (true)
{
FromClientSocket = Listener.AcceptSocket ();
if (FromClientSocket.Connected)
{
Thread connect = new Thread (new ThreadStart (listener));
connect.Start ();
}
}
}
catch (SocketException ex)
{
MessageBox.Show (“Server: ” + ex.Message);
}
catch (InvalidOperationException ex)
{
MessageBox.Show (“Server: ” + ex.Message);
}
catch (System.ArgumentOutOfRangeException ex)
{
MessageBox.Show (ex.Message);
}
catch (Exception e)
{
}

}

Ну и код сервера давай уже раз такие пироги

public void Connect ()
{
try
{
IPAddress addr = IPAddress.Parse ( “192.168.1.1” );
client = new TcpClient ();
client.Connect (addr, 80);
sender = client.Client;
if (sender.Connected)
{
MessageBox.Show (“Client: Server was connectThread”);
Thread ListenerThread = new Thread (new ThreadStart (listener));
ListenerThread.Start ();
}
}
catch (SocketException ex)
{
MessageBox.Show (ex.Message + “SocketException” );
}
catch (Exception e)
{
MessageBox.Show (“Client error ” + e.Message);
}
}

єто код соединения клиента... что я делаю не так...?

просто написало че-то типа «соединение адрес-сервера...»


#
nobody 36 мин. назад

ничего... просто выкидывает...

Сообщение какое после выкидывания написано в шеле? Черный экран перед выкидыванием появляется (полностью без надписей)?

Если есть просто черный экран с курсором (некоторое время) то значит соединение есть, если нет, то ковыряйте свой фаервол, таймаут сервера и прочее.

ничего... просто выкидывает...

telnet адрес-сервера порт-сервера

в шеле что говорит?

Підписатись на коментарі