powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / TCP Server
25 сообщений из 39, страница 1 из 2
TCP Server
    #39543916
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создал сервер
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
    TcpListener server = null;

        // Buffer for reading data
        Byte[] bytes = new Byte[256];
        String data = null;

        private void buttonStart_Click(object sender, EventArgs e)
        {
            try
            {
                Int32 port = Int32.Parse(textBoxPort);
                IPAddress localAddr = IPAddress.Parse(textBoxIpAdr.Text);

                server = new TcpListener(localAddr, port);
                server.Start();

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }


Теперь хочу создать два потока. Один принимает данные, другой посылает. Вопрос что создать - два треда или два таска?
...
Рейтинг: 0 / 0
TCP Server
    #39543934
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7,

Особо разницы не будет, если нагрузка будет самым критичным фактором. С Task удобнее работать, удобнее отменять, удобнее получать результат
...
Рейтинг: 0 / 0
TCP Server
    #39543945
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VSVLADjenya7,

Особо разницы не будет, если нагрузка будет самым критичным фактором. С Task удобнее работать, удобнее отменять, удобнее получать результат
понял. спасибо.
...
Рейтинг: 0 / 0
TCP Server
    #39543972
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7Вопрос что создать - два треда или два таска?
вы отталкивайтесь от уровня кода.
- системный код(драйвера, сервера, API)
- бизнес логика и прикладной (возле ГУИ и БЛ).
В нижнем уровне можно писать как угодно, лишь бы по ТЗ.
Например, нагрузка, отказоустойчивость.
В прикладном коде - удобство.
...
Рейтинг: 0 / 0
TCP Server
    #39543975
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123jenya7Вопрос что создать - два треда или два таска?
вы отталкивайтесь от уровня кода.
- системный код(драйвера, сервера, API)
- бизнес логика и прикладной (возле ГУИ и БЛ).
В нижнем уровне можно писать как угодно, лишь бы по ТЗ.
Например, нагрузка, отказоустойчивость.
В прикладном коде - удобство.
а что соответствует удобству - треды или таски?
...
Рейтинг: 0 / 0
TCP Server
    #39543978
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7а что соответствует удобству - треды или таски?
VSVLAD же выше написал.
Если бы я с ним был не согласен, я бы написал.
...
Рейтинг: 0 / 0
TCP Server
    #39544690
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
jenya7,

О , Господи! Давно уже есть WCF, а народ все свои Листерены пишет!
...
Рейтинг: 0 / 0
TCP Server
    #39544740
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2jenya7,

О , Господи! Давно уже есть WCF, а народ все свои Листерены пишет!Дык производительнее жеж :)
...
Рейтинг: 0 / 0
TCP Server
    #39544743
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2О , Господи! Давно уже есть WCF, а народ все свои Листерены пишет!
а что в этом сложного?
...
Рейтинг: 0 / 0
TCP Server
    #39544863
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ИзопропилCat2О , Господи! Давно уже есть WCF, а народ все свои Листерены пишет!
а что в этом сложного?
Процесс изобретения велосипедов очень увлекателен и производителен
...
Рейтинг: 0 / 0
TCP Server
    #39545096
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Изопропилпропущено...

а что в этом сложного?
Процесс изобретения велосипедов очень увлекателен и производителен
WCF лучший выбор, если и клиент на .net. Это не всегда так.
...
Рейтинг: 0 / 0
TCP Server
    #39546229
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Arm79Cat2пропущено...

Процесс изобретения велосипедов очень увлекателен и производителен
WCF лучший выбор, если и клиент на .net. Это не всегда так.

Клиенту нужно знать только контракт и работать по нему.
Разумеется, если возможны клиенты не на Net, то не надо использовать для передачи данных DataSet и тому подобное
...
Рейтинг: 0 / 0
TCP Server
    #39546256
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2,

ты видимо никогда не сталкивался с микроконтроллерами
...
Рейтинг: 0 / 0
TCP Server
    #39546262
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Разумеется, если возможны клиенты не на Net, то не надо использовать для передачи данных DataSet и тому подобное
Где в исходном сообщении DataSet?

WCF классная штука. Но не всегда применимая.
...
Рейтинг: 0 / 0
TCP Server
    #39548269
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня на другом конце эмбедед система. Там Linux и TCP реализован на сокетах. В данном случае WCF имеет место быть?
...
Рейтинг: 0 / 0
TCP Server
    #39548272
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7Там Linux и TCP реализован на сокетах
откуда такой анахронизм в 21 веке?
У TCP нет ничего уровня приложения. Это голая передача байтов. Нет никакого удобного протокола.
Возможность доделать на той стороне есть?
...
Рейтинг: 0 / 0
TCP Server
    #39548277
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123jenya7Там Linux и TCP реализован на сокетах
откуда такой анахронизм в 21 веке?
У TCP нет ничего уровня приложения. Это голая передача байтов. Нет никакого удобного протокола.
Возможность доделать на той стороне есть?
в смысле доделать? это эмбедед линукс система. там работают сокетами.
...
Рейтинг: 0 / 0
TCP Server
    #39548282
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123jenya7Там Linux и TCP реализован на сокетах
откуда такой анахронизм в 21 веке?Оу, когда это один из основных протоколов передачи данных интернета стал пережитком старины?

Petro123У TCP нет ничего уровня приложения. Это голая передача байтов. Нет никакого удобного протокола.TCP - это протокол транспортного уровня. Его основная функция - обеспечить прямую связь между эндпоинтами и надёжность.
Чем он Вам не удобен с этой точки зрения? Не удобна прямая связь? Не удобна надёжность?
...
Рейтинг: 0 / 0
TCP Server
    #39548285
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7Petro123пропущено...

откуда такой анахронизм в 21 веке?
У TCP нет ничего уровня приложения. Это голая передача байтов. Нет никакого удобного протокола.
Возможность доделать на той стороне есть?
в смысле доделать?В смысле работать на прикладном уровне есть возможность? Ведь чего только нет под управлением embedded linux.
...
Рейтинг: 0 / 0
TCP Server
    #39548293
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7эмбедед линукс система
в трёх словах три разных языка).
Может поподробнее?
...
Рейтинг: 0 / 0
TCP Server
    #39548301
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAjenya7пропущено...

в смысле доделать?В смысле работать на прикладном уровне есть возможность? Ведь чего только нет под управлением embedded linux.
это и есть прикладной уровень
Код: 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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
STATUS TCP_ClientConnect (char *serverName, int *soc_desc) 
{ 
    struct sockaddr_in  serverAddr;    /* server's socket address */ 
    int                 sockAddrSize;  /* size of socket address structure */ 
    int                 sFd;           /* socket file descriptor */ 
    int optval;
    socklen_t optlen;
    
    int status =0 ;
    int dontblock =1;
    /* create client's socket */ 
    if ((sFd = socket (AF_INET, SOCK_STREAM, 0)) == ERROR) 
    { 
        //perror ("socket"); 
        printf ("SOCKET ERROR\n");
        return (ERROR); 
    } 
    else
    	 printf ("SOCKET DESC = %d\n", sFd);
 
    /* bind not required - port number is dynamic */ 
    /* build server socket address */ 
    sockAddrSize = sizeof (struct sockaddr_in); 
    bzero ((char *) &serverAddr, sockAddrSize); 
    serverAddr.sin_family = AF_INET; 
    serverAddr.sin_len = (u_char) sockAddrSize; 
    serverAddr.sin_port = htons (SERVER_PORT_NUM); 
 
    
    if (((int)(serverAddr.sin_addr.s_addr = inet_addr (serverName)) == ERROR) && 
        ((int)(serverAddr.sin_addr.s_addr = hostGetByName (serverName)) == ERROR)) 
    { 
        //perror ("unknown server name");
        printf ("UNKNOWN SERVER NAME\n");
        close (sFd); 
        return (ERROR); 
    } 
    else
    {
    	printf ("ADDR = %d\n", serverAddr.sin_addr.s_addr);
    	printf ("PORT = %d\n", serverAddr.sin_port);
    	
    }
    
    #if KEEPALIVE_ON
    /* Set the option active */
    optval = 1;
    optlen = sizeof(optval);
    if(setsockopt(sFd, SOL_SOCKET, SO_KEEPALIVE, &optval, optlen) < 0)
    {
        close(sFd);
        return (ERROR); 
    }
    printf("SO_KEEPALIVE set on socket\n");
    
    /* Interval (in seconds) between keepalives */
    optval = 1; //every one sec
    setsockopt(sFd, IPPROTO_TCP, TCP_KEEPINTVL, &optval, optlen);
    /* Maximum number of keepalives before dropping the connection */
    optval = 10;
    setsockopt(sFd, IPPROTO_TCP, TCP_KEEPCNT, &optval, optlen);
    /* Send first keepalive probe when the connections been idle this time (in seconds) */
    optval = 5;
    setsockopt(sFd, IPPROTO_TCP, TCP_KEEPIDLE, &optval, optlen);
    #endif
    /* bind a port number to the socket 
    if (bind(sFd, (struct sockaddr *) &serverAddr, sizeof(serverAddr)) == ERROR)
    {
    	printf("BIND ERROR\n");
    	return (ERROR); 
    }
*/
       
    /* connect to server */ 
    optval = 1;
    setsockopt(sFd, IPPROTO_TCP, TCP_NODELAY, &optval, sizeof(int));

    if (connect (sFd, (struct sockaddr *) &serverAddr, sockAddrSize) != OK) 
    { 
        //perror ("connect");
    	printf ("CONNECTION ERROR\n");
        close (sFd); 
        return (ERROR); 
    } 
     
	printf ("CONNECTION GOOD\n");

	
    *soc_desc = sFd;
    
    
	dontblock = 1;
	status = ioctl(sFd, FIONBIO, (char*) dontblock);
	if (status == ERROR)
	{
		printf("messages IOCTL ERROR ");
		printf("messages IOCTL errno = %d\n", errnoGet());
	}
	
    
    return (OK); 
}

int TCP_ClientRead(char *read_buff, int soc_desc)
{
	int mlen;  /* length of message */ 
	int sock_len;
	
	//mlen = read (soc_desc, read_buff, sizeof(read_buff));
	mlen = recv (soc_desc, read_buff, sizeof(read_buff) , 0);

	if (mlen < 0) 
	{  
	    //close (soc_desc); 
	    return (ERROR); 
	}
	
	return (mlen); 
}


STATUS TCP_ClientWrite(int soc_desc , char *write_buff , int size)
{
	if (send (soc_desc, write_buff, size , 0) == ERROR) 
	{ 
	    //printf("Error %x", errno);
	    close (soc_desc); 
	    return (ERROR); 
	} 
	
	return (OK); 
}
...
Рейтинг: 0 / 0
TCP Server
    #39548305
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAОу, когда это один из основных протоколов передачи данных интернета стал пережитком старины?
OData сейчас хайп))
...
Рейтинг: 0 / 0
TCP Server
    #39548306
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7это и есть прикладной уровень
может в википедию заглянуть?
...
Рейтинг: 0 / 0
TCP Server
    #39548307
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7это и есть прикладной уровеньИсключительно в Вашей трактовке это прикладной уровень. А в модели OSI TCP - это транспортный уровень.
...
Рейтинг: 0 / 0
TCP Server
    #39548309
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANAОу, когда это один из основных протоколов передачи данных интернета стал пережитком старины?
OData сейчас хайп))Да прям хайп, что-то не вижу я его :)
Ну и у ТСа фиг знает что за устройство под управлением embedded Linux, а ты ему OData задвигаешь.
...
Рейтинг: 0 / 0
25 сообщений из 39, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / TCP Server
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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