powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / TCP/IP Сокет
9 сообщений из 9, страница 1 из 1
TCP/IP Сокет
    #38273349
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый вечер!


что-то никак не пойму (C# знаю крайне неважно)

если вот так можно создать соединение с серваком:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
             System.Net.Sockets.TcpClient clientSocket = new System.Net.Sockets.TcpClient();
            ..............
             try
            {
                clientSocket.Connect("127.0.0.1", 8888);
                
            }
            catch (Exception ex)
            {
                //MessageBox.Show("qqqqqqq");
                Errors.Text = "Ошибка!" + ex.Message;
            }



То как его разорвать??????
...
Рейтинг: 0 / 0
TCP/IP Сокет
    #38273352
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ща попробую просто создать объект сделать дела и пусть уборщик мусора сам объект грохнет...
...
Рейтинг: 0 / 0
TCP/IP Сокет
    #38273354
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Galadriel75ща попробую просто создать объект сделать дела и пусть уборщик мусора сам объект грохнет...
нет не вариант!
...
Рейтинг: 0 / 0
TCP/IP Сокет
    #38273362
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как победить такую хрень: ???
сделан запрос на подключение для уже подключенного сокета
...
Рейтинг: 0 / 0
TCP/IP Сокет
    #38273366
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
   private void FormSpr_Load(object sender, EventArgs e)
        {
          
            try
            {
                clientSocket.Connect("127.0.0.1", 8888);
                
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                Errors.Text = "Ошибка!" + ex.Message;
            }
            SetupDataGridView(dataGridView1);
            MessageBox.Show("aaaaaaaaa");
            SendCmd(_cmd);
            GetAnswer();
            foreach (var item in data.Tables[0].Columns)
            {
                ColsNames += item.ToString() + ";";
            }

        }



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

так как же быть-то? сокет подрубается на событии FormLoad потом форма закрывается... так вот на повторном открытии формы все и летит...
в общем я еще очень многого не знаю, помогите сделать грамотно!, если есть такая возможность
заранее спасибо!
...
Рейтинг: 0 / 0
TCP/IP Сокет
    #38273388
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гы!!!
нашел как сделать: - но это скорее всего через большую "Ж"!!!, но работает!

Код: c#
1.
2.
  clientSocket.Close();
            clientSocket = new TcpClient();




вот тут и нашел
...
Рейтинг: 0 / 0
TCP/IP Сокет
    #38273687
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все топик можно закрывать - пересмотрел архитектуру приложения, все понял, исправил - оказалось - правильно понял, все заработало!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
TCP/IP Сокет
    #38812760
Фотография des1roer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
народ подскажите в чем трабла
Код: 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.
 internal class DoWork
        {
            string SERV, MES, ParseGlob;
            private bool doWork;
            private System.Threading.Thread thread;
            readonly EventWaitHandle wh = new AutoResetEvent(false);
            int IdCom, Port, ansLen;
            Regex rxNums = new Regex(@"^\d+$");
 
            internal DoWork(String server, String message, Int32 port, Int32 idcom, String Parse, Int32 dlina)
            {
                SERV = server;
                MES = message;
                Port = port;
                IdCom = idcom;
                ansLen = dlina;
                if (Parse != "")
                    ParseGlob = Parse;
            }
            public void ThreadStart()
            {
                doWork = true;
                thread = new Thread(Execute);
                thread.Start();
 
 
            }
            public void ThreadStop()
            {
                doWork = false;
                wh.Set();
 
            }
            void Execute()
            {
                try
                {
                    if (doWork)
                        Connect(SERV, MES, Port);
 
                }
                catch (Exception msg)
                {
                    logger.Trace("Execute() " + msg);
                    return;
                }
            }
 
            public void Connect(String server, String message, Int32 port)
            {
                try
                {
                    // Create a TcpClient.
                    // Note, for this client to work you need to have a TcpServer 
                    // connected to the same address as specified by the server, port
                    // combination.
 
                    // 
                    TcpClient client = new TcpClient(server, port);
 
                    // Translate the passed message into ASCII and store it as a Byte array.
                    Byte[] data = System.Text.Encoding.ASCII.GetBytes(message);
 
                    // Get a client stream for reading and writing.
                    //  Stream stream = client.GetStream();
 
                    NetworkStream stream = client.GetStream();
 
                    // Send the message to the connected TcpServer. 
                    stream.Write(data, 0, data.Length);
 
                    //   logger.Trace("Sent: {0}", message);
                    if (list[10] == "1")
                    {
                        logger.Trace("Sent: {0}", message);
                    }
                    doWork = false;
                    // Receive the TcpServer.response.
                    //  Thread.Sleep(2000);   
                    // Buffer to store the response bytes.
                    data = new Byte[256];
 
                    // String to store the response ASCII representation.
                    String responseData = String.Empty;
 
                    // Read the first batch of the TcpServer response bytes.
                    Int32 bytes = stream.Read(data, 0, data.Length);
                    responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);
 
                    if (list[10] == "1")
                    {
                        logger.Trace("port_DataReceived " + responseData);
                    }
 
 
                }
                catch (ArgumentNullException e)
                {
                    logger.Trace("ArgumentNullException: {0}", e);
                    return;
                }
                catch (SocketException e)
                {
                    logger.Trace("SocketException: {0}", e);
                    Thread.Sleep(1000); 
                    return;
                }
            }
            public bool ThreadState()
            {
                if (doWork)
                    return true;
                else return false;
            }
        }


опрашивает первые 3 раза (на одном порту 4 прибора у них разные коды) а потом пишет Trace|SocketException: {0}
...
Рейтинг: 0 / 0
TCP/IP Сокет
    #38812764
Фотография des1roer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
  stream.Close();

))))
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / TCP/IP Сокет
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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