Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2014, 16:42   #1
Vadiliy
Пользователь
 
Регистрация: 30.11.2012
Сообщений: 43
По умолчанию Передача данных по сети

Всем привет, на днях решил написать простенький чат, но тут такая проблема: не получается передать сообщение с сервера на клиент и наоборот, вот исходник:

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Sockets;
using System.Net;
using System.Threading;
// это сервер

namespace client
{
    class Program
    {

        static void Main(string[] args)
        {
            int port = 10000;
       
        IPEndPoint end = new IPEndPoint(IPAddress.Parse("127.0.0.1"), port);
        Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        s.Bind(end); // соеденяемся с локальной конечной точкой
        s.Listen(2); // максимум 2 клиента
        Socket client = s.Accept(); // ожидаем подключений (код ниже выполнятся не будет) 
        Console.WriteLine("есть коннект, введите команду");
        string a;
        a = Console.ReadLine();

         
            byte[] buffer = new byte[20];
            byte[] msg = Encoding.ASCII.GetBytes(a);
            s.Send(msg);
           
        s.Close();
        client.Close();
        Console.ReadLine();
         }

    }
}
и клиент:
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Net.Sockets;
using System.Net;

namespace конс_с_шарп
{
    class Program
    {
        // клиент
       
        static void Main(string[] args)
        {
            IPEndPoint end = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 10000); 
            Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            client.Connect(end); // соеденяемся с сервером
            byte[] buffer = new byte[20];

            int i;
            i = client.Receive(buffer);
            Console.WriteLine(Encoding.UTF8.GetString(buffer));
          
            client.Close(); // закрываем сокет
            Console.ReadLine();
        }
    }
}
+ получается установить соединение только на локальной машине, пробовал передать клиент другу, поменял ip - ничего не получилось, но это второстепенное.
Vadiliy вне форума Ответить с цитированием
Старый 22.02.2014, 16:51   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

проблема то в чем?
eval вне форума Ответить с цитированием
Старый 22.02.2014, 16:55   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
поменял ip - ничего не получилось
Наверное потому что друг в инете (да и ты) сидит на динамическом IP. А для таких вещей нужен статический.
Р.S. Знакомый рассказывал: Не в жилу было проверять на локалке, отдал прогу другу. Друган через инет выяснил свой реальный IP на сегодня, сказал его знакомому. Тот закинул его в свою прогу и без проблем подключился. Делал, говорит, чисто для тестов. Верить не верить? Утка не утка?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.02.2014, 16:56   #4
Vadiliy
Пользователь
 
Регистрация: 30.11.2012
Сообщений: 43
По умолчанию

Проблема в том, что не получается передать данные.
Vadiliy вне форума Ответить с цитированием
Старый 22.02.2014, 17:04   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А коннект есть?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.02.2014, 17:06   #6
Vadiliy
Пользователь
 
Регистрация: 30.11.2012
Сообщений: 43
По умолчанию

Да, коннект есть, сейчас пробую SendTo, но безуспешно.
Vadiliy вне форума Ответить с цитированием
Старый 22.02.2014, 17:53   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Безуспешно в каком смысле?
Ошибка? Исключение? Зависание?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.02.2014, 18:02   #8
Vadiliy
Пользователь
 
Регистрация: 30.11.2012
Сообщений: 43
По умолчанию

Исключение
Vadiliy вне форума Ответить с цитированием
Старый 22.02.2014, 18:05   #9
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

пинг-понг .
eval вне форума Ответить с цитированием
Старый 22.02.2014, 18:46   #10
Vadiliy
Пользователь
 
Регистрация: 30.11.2012
Сообщений: 43
По умолчанию

Решил проблему с передачей данных, осталась 1, как узнать свой статический ip?
Vadiliy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача данных по сети Imposters Общие вопросы .NET 2 13.10.2012 18:45
Передача данных по локальной сети zzzzz Работа с сетью в Delphi 2 02.07.2011 19:24
передача данных по локальной сети DinamoBrynsk Помощь студентам 2 22.11.2010 22:17
Передача данных по сети. Alex Cones Работа с сетью в Delphi 2 06.08.2010 20:55
Передача данных по сети. ROD Общие вопросы C/C++ 3 18.06.2009 09:41