50٪ تخفیف روی تمام دوره‌ها!
پایان تخفیف تا:
مشاهده دوره‌ها
0

سوالی در مورد سوکت پروگرمینگ C#

سلام دوستان من یک سوال دارم

private void button2_Click(object sender, EventArgs e)
        {
            IPEndPoint ipendpointserver = new IPEndPoint(IPAddress.Parse(textBox2.Text),int.Parse(textBox3.Text));
            socserver.Bind(ipendpointserver);
            socserver.Listen(1);
            SocClint = socserver.Accept();
        }

همانطور که میبینید من یک تکست باکسی دارم که ای پی رو از اون میگره ولی مشکل من اینجاس که فقط ای پی لوکال یا 127.0.0.1 رو میگره

من میخوام نخسه سرور نرم افزارم در یک سرور مجازی با ای پی مثلا 84.47.249.142 باشه وقتی من این ای پی رو در تکست باکسم وارد میکنم ارور میده مشکل از کجاس ممنون میشم راهنمائی کنید

پرسیده شده در 1396/03/13 توسط

3 پاسخ

0

این کل کد من هست

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

namespace WindowsFormsApplication9
{
    public partial class Form1 : Form
    {
        Socket socserver = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
        Socket SocClint = null;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button2_Click(object sender, EventArgs e)
        {
            IPEndPoint ipendpointserver = new IPEndPoint(IPAddress.Parse(textBox2.Text),int.Parse(textBox3.Text));
            socserver.Bind(ipendpointserver);
            socserver.Listen(1);
            SocClint = socserver.Accept();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            byte[] barray = new byte[1024];
            barray = Encoding.Unicode.GetBytes(textBox1.Text);
            SocClint.Send(barray);

        }

        private void button3_Click(object sender, EventArgs e)
        {
            try
            {
                if (SocClint != null)
                {

                    SocClint.Shutdown(SocketShutdown.Both);
                }
                if (socserver != null)
                {

                    socserver.Shutdown(SocketShutdown.Both);
                }

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


        }




        private void button4_Click(object sender, EventArgs e)
        {
            try
            {
                if (SocClint != null)
                {

                    SocClint.Shutdown(SocketShutdown.Both);
                }
                if (socserver != null)
                {

                    socserver.Shutdown(SocketShutdown.Both);
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            Environment.Exit(Environment.ExitCode);
            Application.Exit();
        }
        
    }
}

این ظاهر برنامم هست

ظاهر برنامه

وقتی یه ای پی غیر لوکال میدم طبق تصویر پایینی اینطوری میشه

تصویر ارور نرم افزار

وقتی هم تو try catch میندازم ارور Exception اینجوریه ("The requsted address is not valid in its contest")

پاسخ در 1396/03/14 توسط
0

دوست عزیز وقتی که به ip غیر لوکال دسترسی نداشته باشه این خطا تولید میشه.

پاسخ در 1396/03/15 توسط
1

سلام ارروری رو که می‌ده رو بذارید توی سایت. معمولاً تویی اینجور نیست گرفتن ها از پورن هاب مختلفی برای سرور و کلاینت استفاده می‌شود

پاسخ در 1396/03/14 توسط

پاسخ شما