Member 14064493 Ответов: 1

Я хочу общаться с клиент-сервером с помощью xsocket означает , что вы хотите отправить информацию от клиента, сервер получит ее и ответит на отправку обратно в C# с помощью xsocket ...


я получаю ошибку (
the operation is not allowed on non-connected sockets
)
на стороне клиента на линии thi
NetworkStream serverStream = clientSocket.GetStream();



я использую эту ссылку
Программа сокета сервера C# [^]

Что я уже пробовал:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net.Sockets;


namespace QRCodeDemo
{
    public partial class Form2 : Form
    {
        System.Net.Sockets.TcpClient clientSocket = new System.Net.Sockets.TcpClient();
        public Form2()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            msg("Client Started");
            clientSocket.Connect("192.100.0.00", 8888);
            label1.Text = "Client Socket Program - Server Connected ...";
        }

        private void button1_Click(object sender, EventArgs e)
        {
            NetworkStream serverStream = clientSocket.GetStream();
            byte[] outStream = System.Text.Encoding.ASCII.GetBytes(textBox2.Text + "$");
            serverStream.Write(outStream, 0, outStream.Length);
            serverStream.Flush();

            byte[] inStream = new byte[10025];
            serverStream.Read(inStream, 0, (int)clientSocket.ReceiveBufferSize);
            string returndata = System.Text.Encoding.ASCII.GetString(inStream);
            msg(returndata);
            textBox2.Text = "";
            textBox2.Focus();
        }
        public void msg(string mesg)
        {
            textBox1.Text = textBox1.Text + Environment.NewLine + " >> " + mesg;
        }
    }
}

F-ES Sitecore

Код работает нормально для меня, может быть, это локальная проблема сети для вас? Работает ли он, если и клиент, и сервер работают на одной машине с использованием 127.0.0.1?

1 Ответов

Рейтинг:
1

OriginalGriff

TCP-соединения будут тайм-аут, если они не используются, так что это может быть частью вашей проблемы.
Перед вам попробовать метод getstream, проверьте Разъем.Подключенное Свойство (System.Net.Sockets) | Microsoft Docs[^] чтобы посмотреть, установлен ли он по-прежнему, и снова подключиться, если нет.


Member 14064493

спасибо OriginalGriff за ваш ценный ответ..

OriginalGriff

Всегда пожалуйста!

Member 14064493

это работает я просто добавляю
клиентский карман.Подключение("127.0.0.1", 8888);
до
NetworkStream serverStream = clientSocket.Метод getstream();
о методе button1_click
спасибо всем вам за ваши усилия...счастливого кодирования ...