Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# .NET

Войти
Регистрация
Восстановить пароль
 
Shue
23 / 23 / 3
Регистрация: 07.02.2011
Сообщений: 163
#1

Сокеты - C#

19.08.2011, 00:18. Просмотров 788. Ответов 8
Метки нет (Все метки)

Привет.
Нашел очень хороший исходник клиент-серверного чата, покопался в нем, немного изменил.
Пришла в голову одна идея, но вот не знаю как реализовать.
В общем создаю строковый массив:
C#
1
2
string[] masStr = { txt_who.Text, txt_wWho.Text,
                            txt_when.Text, txt_where.Text, txt_what.Text};
И отправляю его на сервак:
C#
1
client.Writer.Write(masStr.ToString());
Так вот, все отправляется, но как его правильно принять на другом конце?
Пробовал так:
C#
1
lb_recieve.Items.Add(client.reader.Read());
но так в листбоксе lb_recieve отображается только количество всех символов всех сроковых переменных массива.
Пробовал так:
C#
1
lb_recieve.Items.Add(client.reader.ReadString());
но так в листбокс выводится "System.String".
Помогите пожалуйста правильно принять массив на другом конце
Позже еще вопросы будут по этому поводу.
Заранее спасибо.
P.S. txt_who.Text, txt_wWho.Text, txt_when.Text, txt_where.Text, txt_what.Text - это текстбоксы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.08.2011, 00:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сокеты (C#):

Сокеты - C#
Здравствуйте! Есть приложение (а точнее чат "VypressChat"). Оно активно использует многоадресную рассылку, чем нагружает сеть. По этой...

Сокеты - C#
Привет всем! Есть простая программка по передаче файла по интерфейсу сокетов (TCP). Протестировала на локалке - идет с песнями. Но...

Сокеты - C#
Люди, хелп. Скоро сдача проэкта, а я имею неприятный глюк. Короче, пересылаю массив байтов, заполненый с помощью...

Сокеты.Сериализация - C#
Клиент и сервер на синхронных сокетах. Нужно сериализовать данные(объект) и отправить по сокету и десериализовать на стороне клиента....

Асинхронные сокеты - C#
Здравствуйте. Очень нужна ваша помощь. Вот callback функция которая передается в метод асинхронного чтения сокета BeginReceive: ...

и снова сокеты - C#
решил написать фтп-клиент, используя сокеты. вот код функции подключения к серверу: public static void Connection() { ...

8
kapitaneo
2 / 2 / 0
Регистрация: 23.01.2011
Сообщений: 41
19.08.2011, 12:37 #2
Может нужно сериализовать в бинарный вид, а потом десериализовать.
0
xameli0n
10 / 10 / 3
Регистрация: 29.12.2010
Сообщений: 50
19.08.2011, 14:18 #3
Второй вариант принятия сообщения правильный, ошибка при отправке, т.к.
masStr.ToString() == System.String

попробуйте отправлять в цикле, перебирая элементы masStr[]

C#
1
client.Writer.Write(masStr[i]);
1
Shue
23 / 23 / 3
Регистрация: 07.02.2011
Сообщений: 163
20.08.2011, 13:18  [ТС] #4
Цитата Сообщение от xameli0n Посмотреть сообщение
Второй вариант принятия сообщения правильный, ошибка при отправке, т.к.
masStr.ToString() == System.String

попробуйте отправлять в цикле, перебирая элементы masStr[]

C#
1
client.Writer.Write(masStr[i]);
Сделал так:
C#
1
2
3
4
5
6
            int i = masStr.Length;
            int n;
            for (n = 0; n < i; n++)
            {
                client.Writer.Write(masStr[i]);
            }
Возникает исключение "Index was outside the bounds of the array."

Разобрался:
C#
1
for (n = 0; n == i; n++)
Вроде нормально.
Спасибо.
0
Shue
23 / 23 / 3
Регистрация: 07.02.2011
Сообщений: 163
20.08.2011, 21:19  [ТС] #5
Сделал все совсем по-другому, но все равно, всем спасибо за помощь.
Самый последний вопрос по этой теме.
Как проверить поступило ли client.reader.ReadString();
Нужно дождаться пока оно поступит, а потом выполнить действие.
Ну типо что-то вроде
C#
1
2
3
4
if(client.reader.ReadString() = true)
{
    //... я знаю что это неправильно, ведь true-булево значение
}
Подскажите как сделать правильно.
Спасибо.

Добавлено через 4 часа 24 минуты
C#
1
if (client.reader.ReadString() != null)
и
C#
1
if (client.reader.ReadString() != "")
тоже не работают.
0
FanAs
54 / 42 / 2
Регистрация: 08.04.2011
Сообщений: 227
21.08.2011, 14:42 #6
Скажи где ты нашел этот чат, интересно сурцы посмотреть.
0
CLEO_ROCK
21.08.2011, 15:33
  #7

Не по теме:

Цитата Сообщение от Shue Посмотреть сообщение
Сделал так:
C#
1
2
3
4
5
6
int i = masStr.Length;
 int n;
 for (n = 0; n < i; n++)
 {
 client.Writer.Write(masStr[i]);
 }
убило

0
Shue
23 / 23 / 3
Регистрация: 07.02.2011
Сообщений: 163
21.08.2011, 18:45  [ТС] #8
Цитата Сообщение от FanAs Посмотреть сообщение
Скажи где ты нашел этот чат, интересно сурцы посмотреть.
http://simple-cs.ru/store/source/81/

Цитата Сообщение от CLEO_ROCK Посмотреть сообщение

Не по теме:


убило

лучшеб помог.
0
Stipashka
7 / 7 / 0
Регистрация: 23.08.2011
Сообщений: 64
06.09.2011, 21:47 #9
По похожему вопросу:
как создать список клиентов?
Вот кусок кода:

Добавлено через 2 минуты
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
TcpListener listener;
        //int counter = 1;
        try
        {
            IPAddress local = IPAddress.Parse(textBox3.Text);
            listener = new TcpListener(local, 50000);
 
            listener.Start();
 
            while (true)
            {
                DisplayMessage("Ожидание соединения...\r\n");
                connection = listener.AcceptSocket();
                socketStream = new NetworkStream(connection);
                spisok.Add(connection);//////////////////??????????? вот тут? пишет что ошибка.
                writer = new BinaryWriter(socketStream);
                reader = new BinaryReader(socketStream);
                DisplayMessage("Connection " + counter + " received.\r\n");
                writer.Write("Соединение успешно");
                DisableInput(false);
                theReply = "";
                Thread t = new Thread(new ThreadStart(Resiver));
                t.Start();
            }
        }
0
06.09.2011, 21:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.09.2011, 21:47
Привет! Вот еще темы с ответами:

Сокеты не соединяются - C#
Здравствуйте, форумчане, вопрос, наверное очень простой и легкий, и мне нужно было бы использовать поиск, но я не понимаю, какие ключевые...

Потоки и сокеты - C#
Сразу к коду: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using...

try catch и сокеты - C#
Есть библиотека классов ,в ней есть класс для передачи данных через TCP\IP.Я добавил в один из методов try catch ,в попытке отловить...

.NET 4.x Клиент-сервер сокеты - C#
Здравствуйте, учусь работать с сокетами, только начал! Хочу вникнуть, пока не получается, ожидаю вашей помощи в данной ситуации! При...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru