Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/39: Рейтинг темы: голосов - 39, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 08.09.2009
Сообщений: 5
1

Socket подключения c#

29.05.2010, 12:38. Показов 8143. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Требуется создать socket подключения между моим компьютером и удаленным сервером по ip и порту.

У сервера создаю подключение как

C#
1
2
3
4
5
sListener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
 sListener.Bind(ipEndPoint);  // где ipEndPoint содержит мой айпи(причем айпи локальный, а не внешний.   // Если попытаться на внешний выдает exception непонятный) и порт.
 sListener.Listen(10);
 sListener.Accept();// ждет клиента, который должен подсоединиться
 int bytesRec = handler.Receive(bytes);
Клиентом подключаюсь

C#
1
2
3
4
5
6
7
sSender = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
 
  sSender.Connect(ipEndPoint); 
  if (sSender.Connected)
{
   sSender.Send("To server");
}
В локальной сети все работает, а из глобальной сети к серверу не получается подключиться.
Вопрос : Как сделать, чтобы из внешней сети тоже могли подключаться?
Заранее, спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.05.2010, 12:38
Ответы с готовыми решениями:

Socket - ы. Ошибка подключения 10061
Доброго времени суток! Начал использовать Socket-ы, при попытке создать соединение, даже на...

Как отловить разрыв подключения [Socket]
Здравствуйте! Интересует как можно отловить момент, когда подключенный клиент разрывает соединение....

Socket перенаправить в другой Socket
Доброго всем. Что делаю: Принимаю запрос, который нужно перенаправить к удаленному компьютеру....

Server&Client Socket, ошибка подключения
При подключении к серверу вылетает ошибка 10060,10049,10061 У меня Win7 но если сервер будет на...

4
2096 / 1261 / 171
Регистрация: 01.02.2009
Сообщений: 2,842
29.05.2010, 12:52 2
Покажи IPEndPoint сервера и клиента
0
0 / 0 / 0
Регистрация: 08.09.2009
Сообщений: 5
29.05.2010, 14:34  [ТС] 3
Цитата Сообщение от kirill29 Посмотреть сообщение
Покажи IPEndPoint сервера и клиента
У сервера
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// При инициализации заполняю comboBox_IPs и потом выбираю по какому ip открыть сокет
                string host = "";
                IPHostEntry hostEntry = null;
                host = Dns.GetHostName();
                hostEntry = Dns.Resolve(host);
 
                foreach (IPAddress address in hostEntry.AddressList)
                {
                    IPEndPoint ipAddr = new IPEndPoint(address, port);
                    textBox_IP.Text = ipAddr.Address.ToString();
                    comboBox_IPs.Items.Add(ipAddr.Address.ToString());
                }
 
            // Перед созданием сокета
            port = int.Parse(textBox_Port.Text);
            IPAddress ipAddr = IPAddress.Parse(textBox_IP.Text);
            IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, port)
У клиента также как у сервера только вручную указываю ip и порт, который открыл на сервере
C#
1
2
3
port = int.Parse(textBox_Port.Text);
            IPAddress ipAddr = IPAddress.Parse(textBox_IP.Text);
            IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, port)
0
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
29.05.2010, 16:19 4
вопрос стар как интернет,
1) IP адрес у сервера должен быть выделенным, т.е виден напрямую из инета
2) надо знать именно этот адрес(а не адрес во внутренней сети), узнать его можно на спец сайтах типа http://myip.ru/
1
0 / 0 / 0
Регистрация: 08.09.2009
Сообщений: 5
29.05.2010, 18:48  [ТС] 5
Цитата Сообщение от m0nax Посмотреть сообщение
вопрос стар как интернет,
1) IP адрес у сервера должен быть выделенным, т.е виден напрямую из инета
2) надо знать именно этот адрес(а не адрес во внутренней сети), узнать его можно на спец сайтах типа http://myip.ru/
Если я выполняю для своего внешнего адреса, полученного с сайта myip.ru
sListener.Bind(ipEndPoint);
то выдается exception , что-то типа "Такой адрес неправильный в данном контексте".
Тогда вопрос так поставлю :
1. "Как можно создать сокет соединение между 2 удаленными компьютерами?"
2. И еще если у меня модем билайна и там написано, что у него статический ip , это значит , что с таким же айпи он виден в сети?
0
29.05.2010, 18:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.05.2010, 18:48
Помогаю со студенческими работами здесь

Perl socket приложение виснет после подключения n раз
Да как бы все бонально. #!/usr/bin/perl $| = 1; use IO::Socket::INET; $host = 'blabla';...

Невозможно создать Socket: Socket sock = new Socket(someHostString,somePortInt);
Народ! Помогите пожалуйста. Вся красота губится на exception что выскакивает в момент создания...

Assembler linux. Socket recv and socket send invalid arguments
Пишу шеллкод. Он ожидает подключения с 2222 порта, сам подключается на 1111 порт, выделяет память,...

Посоветуйте i5-7600 (Socket 1151) или i7-6800 (Socket 2011-3)
Посоветуйте, что взять i7-7700 (Socket 1151) или i7-6800 (Socket 2011-3) материнки на Z270 и на...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru