powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Работа с winsock
7 сообщений из 7, страница 1 из 1
Работа с winsock
    #38404192
webber81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string str1, str2;
str1 = "data:reset\n\r";
str2 = sendReceive(str1);
textBox1.Text = str1;
textBox2.Text = str2;
}
private void button2_Click(object sender, EventArgs e)
{
string str1, str2;
str1 = "data:next\n\r";
str2 = sendReceive(str1);
textBox1.Text = str1;
textBox2.Text = str2;
}
// здесь идут аналогичные buttonXXX_Click
// отличаются только строкой str1 = "YYYYYY\n\r";
string sendReceive(string str1)
{
// отправляем данные(str1) по winSock
// получаем данные(str2) по winSock
return str2;
}
void listen()
{
// здесь слушаем winSock
// и в случае получения строки(str1) передаем соответствующую ей строку(str2) по winSock назад
// надо прослушивать постоянно (в фоновом режиме) но при это не подвесить систему
// как в экзамплах (tcplistener подвешивается система)
// http://msdn.microsoft.com/ru-ru/library/system.net.sockets.tcpclient.aspx
// http://msdn.microsoft.com/ru-ru/library/system.net.sockets.tcplistener.aspx
}
}

Эта прога работает в паре с другой (полностью аналогичной).
Они отличаются только строкой str1 = "YYYYYY\n\r"; в каждой из buttonXXX_Click.
То есть обе проги ждут строки друг от друга все время работы.
Подскажите как это реализовать плиз.
...
Рейтинг: 0 / 0
Работа с winsock
    #38404370
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webber81как в экзамплах (tcplistener подвешивается система)
абсолютный бред

работай с сетью в другом треде и проблем не будет
...
Рейтинг: 0 / 0
Работа с winsock
    #38404713
VIT2708
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webber81,

Изучай примеры, может и в будущем пригодится
...
Рейтинг: 0 / 0
Работа с winsock
    #38419517
webber81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VIT2708 большое спасибо за экзампл.(прикрепленный к сообщению)

В данном экзампле реализован чат по технологии winSock.
В чате данные клиент посылает в виде строки (string), а сервер получает в виде байтового массива (byte[]), который потом преобразует в строку.
В обратную сторону данные пересылаются аналогично.
Данные сервер посылает в виде строки (string), а клиент получает в виде байтового массива (byte[]), который потом преобразует в строку.
Я допилил этот чат до своей проги.
Но в моем ТЗ сказано: "Команды представляют из себя строку в формате UTF-8".
В связи с чем возникают вопросы:
1) Надо ли мне получать данные сразу в виде строки, а не байтового массива? (или это невозможно в принципе?)
2) Если надо в виде строки, то как это реализовать?

Заранее спасибо за ответы.
...
Рейтинг: 0 / 0
Работа с winsock
    #38419651
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webber81...
Но в моем ТЗ сказано: "Команды представляют из себя строку в формате UTF-8".
В связи с чем возникают вопросы:
1) Надо ли мне получать данные сразу в виде строки, а не байтового массива? (или это невозможно в принципе?)
2) Если надо в виде строки, то как это реализовать?
...

1) Не получится - сокеты не работают с типами данных - они работают с массивами байт. Соответственно придётся производить преобразование.
2) По хорошему - использовать соответствующие структуры, описывающие начало "строки" и её размер. В лоб - довериться тому, что всегда приходят строки и тупо преобразовывать массив байт в строку.
Ну и для начала обратиться к MSDN за примером...
...
Рейтинг: 0 / 0
Работа с winsock
    #38420558
webber81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В лоб - довериться тому, что всегда приходят строки и тупо преобразовывать массив байт в строку

Так как в примере прикрепленном VIT2708 ? Или как то еще?
...
Рейтинг: 0 / 0
Работа с winsock
    #38420864
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webber81В лоб - довериться тому, что всегда приходят строки и тупо преобразовывать массив байт в строку

Так как в примере прикрепленном VIT2708 ? Или как то еще?Я его пример не смотрел.
Но и Вы похоже по ссылке пример не смотрели, иначе поняли-бы:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
...
        // Получаем содержимое страницы с сервера. 
        int bytes = 0;
        string page = "Default HTML page on " + server + ":\r\n";

        // Далее будет блокировка до полного получения страницы. 
        do {
            bytes = s.Receive(bytesReceived, bytesReceived.Length, 0);
            page = page + Encoding.ASCII.GetString(bytesReceived, 0, bytes);
        }
        while (bytes > 0);
...
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Работа с winsock
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]