نمایش نتایج 1 تا 2 از 2

نام تاپیک: مشکل این برنامه سرور و کلاینت برای چت چیه؟

  1. #1
    کاربر دائمی
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    ایران زمین
    پست
    412

    مشکل این برنامه سرور و کلاینت برای چت چیه؟

    در این برنامه میخوام چند تا کلاینت بتونه همزمان به سرور کانکت بشه و کلاینت ها پیامی رو برای سرور بفرستند و سرور هم جواب را برای همان کلاینت بفرسته یعنی حواب برای همه نره. واینکه میخواستم در ترید به richtextbox دسترسی داشته باشم که نشد چطور میشه؟

    برنامه سمت سرور

    namespace
    ts1
    {
    publicpartialclassForm1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }
    // string sBuffer;
    int i = 0;
    Socket[] mysocet =
    new Socket[10];
    private TcpListener myListener;
    privateint port = 2020;
    privatevoid button1_Click(object sender, EventArgs e)
    {

    try
    {
    //گوش ایستادن روی پورت
    myListener = new TcpListener(port);
    myListener.Start();
    Console.WriteLine("Web Server Running...... Press ^C to Stop......");
    // استفاده از چند نخی برای پاسخ به چند پردازش همزمان
    // Thread th = new Thread(new ThreadStart(StartListen));
    // th.Start();
    Thread th1 = newThread(acp);
    th1.Start();
    }
    catch (Exception)
    {
    Console.WriteLine("an err occured :" + e.ToString());
    }
    }
    publicvoid acp()
    {

    while (i<10)
    {

    //Accept a new connection
    mysocet [i]= myListener.AcceptSocket();
    if (i == 0)
    {
    Thread th = newThread(newThreadStart(StartListen));
    th.Start();
    }
    else
    {
    if (!mysocet[i - 1].Connected)
    {
    Thread th = newThread(newThreadStart(StartListen));
    th.Start();
    }
    }
    i++;
    }
    }
    publicvoid StartListen()
    {

    while (true)
    {
    if (i == 1)
    i--;
    //Accept a new connection
    // Socket mySocket = myListener.AcceptSocket();
    // Console.WriteLine("Socket Type " + mySocket.SocketType);
    if (mysocet [i].Connected)
    {
    // Console.WriteLine("\nClient Connected!!\n==================\nCLient IP {0}\n",
    // mySocket.RemoteEndPoint);
     
     
    //make a byte array and receive data from the client
    Byte[] bReceive = newByte[1024];
    //int j =
    mysocet[i].Receive(bReceive);

    //Convert Byte to String
    string sBuffer = Encoding.ASCII.GetString(bReceive);
    // MessageBox.Show(sBuffer);
    // richTextBox1.Text += sBuffer;

    MessageBox.Show(sBuffer);
    mysocet[i].Send(bReceive);
    }

    }
    mysocet[i].Close();
    }
    privatevoid button2_Click(object sender, EventArgs e)
    {
    }
    privatevoid Form1_Load(object sender, EventArgs e)
    {
    }
    }
    }

  2. #2
    کاربر دائمی
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    ایران زمین
    پست
    412

    نقل قول: مشکل این برنامه سرور و کلاینت برای چت چیه؟

    برنامه سمت کلاینت

    namespace
    c2
    {
    publicpartialclassForm1 : Form
    {
    Socket sktClient;
    public Form1()
    {
    InitializeComponent();
    }
    privatevoid button1_Click(object sender, EventArgs e)
    {
    sktClient =
    new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    try
    {
    sktClient.Connect(
    "127.0.0.1", 2020);
    textBox2.Text =
    "connected";
    }
    catch
    {
    MessageBox.Show(
    "cannot connect");
    }

    /* string str = textBox1.Text;
    byte[] buffer = Encoding.ASCII.GetBytes(str);
     
    sktClient.Send(buffer);*/


    // sktClient.Send(buffer);
    // textBox2.Text += Encoding.ASCII.GetString(buffer);

     
    }
    privatevoid Form1_Load(object sender, EventArgs e)
    {
    }
    privatevoid button2_Click(object sender, EventArgs e)
    {
    try
    {
    string str = textBox1.Text;
    byte[] Sbuffer = Encoding.ASCII.GetBytes(str);
    sktClient.Send(Sbuffer);
    }
    catch
    {
    MessageBox.Show(
    "problem in the program");
    }
    string Rstr;
    byte[] Rbuffer = newbyte[500];
    sktClient.Receive(Rbuffer);
    Rstr =
    Encoding.ASCII.GetString(Rbuffer);

    richTextBox1.Text += Rstr;
    richTextBox1.Text +=
    "\n";

    this.Refresh();
    }

    privatevoid button3_Click(object sender, EventArgs e)
    {
    sktClient.Close();
    }
    }
    }

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •