صفحه 2 از 2 اولاول 12
نمایش نتایج 41 تا 57 از 57

نام تاپیک: TCP/IP Socket Programming in Framework.Net 2.0

  1. #41
    کاربر دائمی آواتار __H2__
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    یک جایی بین Framework و نارمک!
    پست
    1,059

    نقل قول: TCP/IP Socket Programming in Framework.Net 2.0

    سلام
    من احتیاج دارم که تعدادی دستور رو چند ثانیه یک بار برای یک سخت افزار بفرستم
    مطمئن نیستم، ولی گمان میکنم شما دچار کمی اشتباه شده اید.
    بحث پورتی که در این تاپیک مطرح شده، پورت های نرم افزاری سیستم عامل است و بحث پورتی که در تجهیزات سخت افزاری و خارجی به رایانه وصل میشود، پورت سخت افزاری است مثل درگاه های RS232 و USB و سنترونیکس و...

    ==============

    اگر منظورتان اتصال تجهیزات دیجیتالی خارجی به پورت های واقعی سخت افزاری رایانه است، این تاپیک اصلاً ارتباطی به مشکل شما ندارد و کمکی نخواهد کرد.
    در دات نت کلاس ارتباط با درگاه COM را داریم.(System.IO.Ports.SerialPort)
    برای اتصال به درگاه LPT هم میتوانید به مقاله زیر مراجعه کنید:
    http://support.h02.ir/fwlink/?LinkId=1000292003


    من با ایننرم افزار و کمی دستکاری به پورت میل متصل شدم
    (اگر هم منظورتان همان مفهوم پورت نرم افزاری در شبکه ها و TCP/IP و... است لطفاً توضیح بیشتری ارائه دهید.)

    منظورتان از "پورت میل" چیست؟ منظورتان همان e-mail تحت پروتکل SMTP است؟
    پروتکل SMTP یک پروتکل پیشرفته با مستندات زیاد است.
    دات نت به صورت داخلی دارای کلاس و امکانات ویژه ای برای ارسال ایمیل تحت پروتکل SMTP و TCP/IP است و شما نیازی به اتصال مستقیم سوکتی با سرور SMTP ندارید.
    (System.Net.Mail.SmtpClient)

    موفق باشید.

  2. #42

    نقل قول: TCP/IP Socket Programming in Framework.Net 2.0

    سلام و ممنون بابت کد خیلی عالی تون
    خب من توی کامند پرومت مینویسیم . telnet mail.site.com 25 با این دستور کانتکت می شه و می تونم با دستورات بعدی برای اون میل بفرستم . روی سایت خودتون امتحان کنید . البته این نرم افزار من قراره کدهای مشابهی رو روی تلنت پورت 23 برای دستگاهی بفرسته و جواب بگیره . سخت افزار کاملا به تلنت جواب می ده . یعنی همه ی command ها از طریق تلنت و cmd به دستگاه منتقل می شن . که خیلی وقت گیره . من می خوام با فشار دگمه ای دستور توسط نرم افزار فرستاده بشه .
    الان به عنوان مثال من در نرم افزار شما در حالت کلاینت پرت رو به 25 تغییر دادم بعد به آی پی سرور میل متصل شدم و جواب تایید اتصال رو گرفتم اما با دستورات بعدی هیچ جوابی نرسید . روی حالت سرور هم که قرارش می دم . با وارد کردن آی پی ارور می ده . می گه ipendpoint معتبر نیست .
    من با این شکل برنامه نویسی شما آشنا نیستم مخصوصا با نخ ها کار نکردم . اگه مراحل کار رو توضیح بدید . ممنون می شم . خودم به کد ور می رم درستش می کنم .
    ببخشید اگه نمی تونم منظورم رودرست برسونم .

  3. #43
    کاربر دائمی آواتار __H2__
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    یک جایی بین Framework و نارمک!
    پست
    1,059

    نقل قول: TCP/IP Socket Programming in Framework.Net 2.0

    سلام
    سخت افزار کاملا به تلنت جواب می ده...
    همین عبارت ساده، مطلب را شفاف میکند.

    روی حالت سرور هم که قرارش می دم . با وارد کردن آی پی ارور می ده . می گه ipendpoint معتبر نیست.
    این مورد بدیهی است.
    آن سخت افزار شما عدد IP مشخص را دارد و سرور این ارتباط است و شما با آن تماس میگیرید و آن به شما جواب میدهد!
    سوکت سمت سروری را باید با IP خودتان باز کنید و بعد هم این شما هستید که باید منتظر بمانید تا یکی به شما وصل شود و...
    پس سوکت سروری را فراموش کنید.

    اما با دستورات بعدی هیچ جوابی نرسید
    من الآن دقیقاً حضور ذهن ندارم چه کدی نوشته بودم ولی مطمئن هستم که از کدینگ UTF8 استفاده کردم، در حالیکه احتمال کارکردن سوکت سروری شما با کدینگ ASCII بسیار محتمل است و این میتواند منشاء ای برای مشکل و عدم هماهنگی باشد و مطلب بعد هم انکه در خیلی از این پروتکلها خود کاراکتر خط جدید یا همان Enter (دو کاراکتر 10-13 یا تک کاراکتر 13) هم در پایان پیام ها مهم است.

    دو مورد فوق را در کد قبلی اصلاح کنید و مجدد آزمایش کنید.

    اگه مراحل کار رو توضیح بدید . ممنون می شم
    خوب مگر در کل این تاپیک و pdf نهایی ان کاری غیر از این انجام شده؟
    کل تاپیک و pdf در مورد فهم و توضیح چگونگی این کار است.
    کافی است pdf موجود را مجدد و با دقت بیشتری مرور کنید:
    http://support.h02.ir/fwlink/?LinkId=1001574597

    موفق باشید.

  4. #44
    کاربر تازه وارد آواتار rezano
    تاریخ عضویت
    اردیبهشت 1388
    پست
    52

    نقل قول: TCP/IP Socket Programming in Framework.Net 2.0

    با سلام

    من زیاد توی این سایت رفت و آمد نداشتم
    ولی وقتی سر و کارم به سوکت اوفتاد هر چی گشتم منبعی پیدا نکردم
    و بعد با اینجا آشنا شدم
    واقعا این سایت باید به کاربر __H2__ افتخار کنه
    من که واقعا از ایشون متشکرم و امیدوارم خیر دنیا و آخرت نسیبتون بشه که این طور خوب کار مردم رو راه میندازید.

    دمت گرم داداش

  5. #45

    نقل قول: TCP/IP Socket Programming in Framework.Net 2.0

    ممنون .
    حالا یک مشکل جدید چطوریمی تونم به یک آی پی دیمنامیک متصل بشم ؟ هیچ سروری با آی پی استاتیک میون دو یوزر وجود نداره . فقط با اتصال به اینترنت و داشتن آی پیآی اس پی و کد دوم می شه به هم متصل شد ؟ اصلن ممکنه ؟

  6. #46

    نقل قول: TCP/IP Socket Programming in Framework.Net 2.0

    سلام

    هرچی توی سایت و کلا نت گشتم منبع درست و حسابی که قشنگ توضیح داده باشه در مورد Delegate ها و EventHandler ها ندیدم
    توی MSDN هم رفتم ولی انگلیسی مون هم که خوب نیست دست و پا شکسته چیه چیزهایی معنی کردم ولی دقیقا چیزی نفهمیدم.

    اگه میشه خودتون در مورد این 2 تا توضیح بدید که کلا کاربردشون چیه و توی این کدی که شما نوشتید چه کاری انجام میدن ؟

    لطفا کمک کنید



    using System;

    namespace CS_1
    {
    public interface IChat
    : System.IDisposable
    {

    event MessageEventHandler Recived;
    event System.EventHandler EnabledChange;

    System.Net.IPEndPoint EndPoint { get; set; }
    bool Enabled { get; set; }
    void Send(string msg);

    }
    //__________________________________________________ ____________________


    public class MessageEventArgs
    : System.EventArgs
    {

    public readonly string Message;

    public MessageEventArgs(string message)
    {
    this.Message = message;
    }

    }
    //__________________________________________________ ____________________


    public delegate void MessageEventHandler(object sender, MessageEventArgs msg);
    //__________________________________________________ ____________________

    }



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

  7. #47
    کاربر دائمی آواتار __H2__
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    یک جایی بین Framework و نارمک!
    پست
    1,059

    نقل قول: TCP/IP Socket Programming in Framework.Net 2.0

    سلام
    حالا یک مشکل جدید چطوریمی تونم به یک آی پی دیمنامیک متصل بشم ؟ هیچ سروری با آی پی استاتیک میون دو یوزر وجود نداره . فقط با اتصال به اینترنت و داشتن آی پیآی اس پی و کد دوم می شه به هم متصل شد ؟ اصلن ممکنه ؟
    اینترنت و شبکه وابستگی بسیار شدید و غیر قابل گسستی به IP دارد.
    IP نشانی رایانه مورد نظرتان است.
    بدون داشتن IP هیچ عملی نمیتوان انجام داد.
    دور زدن ان ممکن نیست.

    =====

    در واقع شما باید دنبال راه کارهایی برای بدست اوردن IP باشید.
    مهم ترین راه موجود DNS است که به سرورها نام های یکتا تخصیص میدهند (مثل google.com یا microsoft.com و...) و نام به سرور DNS استعلام داده میشود و جواب ان IP آن سرور خواهد بود.

    اگر فقط یکی از طرف های ارتباط شما یک سرور مشخص نام دار باشد با روش فوق مشکلتان حل خواهد شد.

    =====

    در برنامه هایی مثل چت های yahoo و google و microsoft و... اینطور نیست که دو طرف چت مستقیم به هم وصل شوند.
    در واقع این برنامه ها هر دکدام به سایت اینترنتی مشخص با نام مشخص متصل میشوند که IP این سایتها به راحتی با DNS قابل تحصیل است.

    در واقع سوکت سمت سرور در این برنامه ها همواره سرور شرکت است و شما در حال چت با ان سرور هستید، برنامه به راحتی با DNS میتواند IP سرور را گرفته و متصل شود بعد ان سرور به عنوان یک میانجی و نوعی مرکز ارتباط رفتار میکند و اطلاعات را بین افراد مختلف جابه جا میکند.

    پس یک راه معقول و خوب ان است که اگر برنامه شما در ساختمان شرکت یا بستر اینترنت کار میکند، بیایید و یک سرور مشخص با IP یا نام معلوم تعریف کنید که همه به آن وصل شوند و آنجا اطلاعات از افراد(کلاینت) مختلف گرفته و افراد(کلاینت) دیگر ارسال شود.

    اگر بین دو رایانه دو کاربر عادی در اینترنت بدون هیچ سرور کمکی بخواهید ارتباط برقرار کنید.
    تنها راه ان است که حداقل برنامه IP رایانه خودش را جایی به کاربر نشان دهد تا کاربر بتواند آن IP را با تلفن و به صورت شفاهی به دوست دیگر خودش اعلام کند و او در برنامه خود وارد کند و ارتباط برقرار شود!!!!!!
    تازه این هم فقط وقتی تضمین دارد که فرد حداقل IP Valid داشته باشد (مثلا Dialup نباشد!)
    اصولاً کار جامع و کارآمد و جالبی نیست!

    موفق باشید.

  8. #48
    کاربر دائمی آواتار __H2__
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    یک جایی بین Framework و نارمک!
    پست
    1,059

    نقل قول: TCP/IP Socket Programming in Framework.Net 2.0

    سلام مجدد
    چون توضیح سوال قبلی و بعدی زیاد بود بهتر دیدم برای وضوح بیشتر دز پست جدیدی سوال دوم را جواب دهم...
    در مورد Delegate ها ... اگه میشه خودتون در مورد این 2 تا توضیح بدید
    (((
    مطلب زیر را قبلاً در سایت دیگری قرار داده بودم ولی چون دیدن کدها در آن سایت بدون عضویت ممکن نیست، مجدد کپی مطلب خودم را اینجا درج میکنم
    )))

    delegate ها اشاره گر توابع هستند.
    یعنی آدرس شروع کدهای تابع را در RAM در خودش دارد.
    در واقع میتوانید با delegate یک تابع را جابه جا کنید.
    مثل یک نوع shortcut به محل ان تابع.

    کد نمونه:

    //C#‎.Net
    public delegate int Name1(int i);

    public void Run(Name1 handler)
    {
    for (int i = 0; i <= 10; ++i)
    {
    int y = handler(i);
    System.Diagnostics.Debug.WriteLine(y);
    }
    }

    public int F1(int i)
    {
    return i * i;
    }

    public int F2(int i)
    {
    return 2 * i;
    }

    public void Main()
    {
    this.Run(new Name1(this.F1));
    this.Run(this.F1);

    this.Run(new Name1(this.F2));
    this.Run(this.F2);
    }

    'VB.Net
    Public Delegate Function Name1(ByVal i As Integer) As Integer

    Public Sub Run(ByVal handler As Name1)
    For i As Integer = 0 To 10
    Dim y As Integer = handler(i)
    System.Diagnostics.Debug.WriteLine(y)
    Next
    End Sub

    Public Function F1(ByVal i As Integer) As Integer
    Return i * i
    End Function

    Public Function F2(ByVal i As Integer) As Integer
    Return 2 * i
    End Function

    Public Sub Main()
    Me.Run(New Name1(AddressOf Me.F1))
    Me.Run(AddressOf Me.F1)

    Me.Run(New Name1(AddressOf Me.F2))
    Me.Run(AddressOf Me.F2)
    End Sub

    دقت کنید که تابع Run یک اشاره گر تابع میگیرید و آن را در داخل خودش اجرا میکند ...
    تابع F1 و F2 هم دو نمونه تابع مطابق الگوی امضای دیجیتال Name1 است که اشاره گرشان میتواند در متغییری از Name1 جا شود و یا منتقل شود.

    در واقع در یک متغییر عادی شما ساختارها(struct) و اشیا(class) ها را جابه جا میکنید و در متغییری از نوع delegate میتوانید یک تابع را جا به جا کنید!

    بعد از توضیح فوق اگر همچنان مشکلی بود، بفرمایئد.

  9. #49

    نقل قول: TCP/IP Socket Programming in Framework.Net 2.0

    سلام

    آقا شرمنده

    شما اومدید از اول قدم به قدم همه چیز رو گفتید
    بعد که رسیدید به Asynchronous یه توضیح مختصر دادید و کل کامل برنامه رو گزاشتید

    کدی که گزاشتید خیلی حرفه ای بود توش از چند نخی و دلگیت و اونت و اینترفیس و ....... استفاده کردید
    که جمع همه این ها برای ما تازه کارا یکم سخت میشه.
    به خدا من یک ماهه دارم روی کدتون کار می کنم ، event و Delegate رو هم فهمیدم چیه .
    یه مدت هم multi Thread خواستم یاد بگیرم تا یه جاهایی هم پیش رفتم

    ولی حالا که نگاه می کنم می بینم اوضاعم خیلی خرابه این طور اگه پیش برم تا سال دیگه هم نمی تونم یاد بگیرم

    گفتم اگه میشه یه کم موضوع رو باز تر کنید
    مثلا Asynchronous و استفاده از متدهای BeginXXXXX و .... و AsyncCallback رو بیشتر توضیح بدید
    توی کدتون هم اصلا کامنت برای متد ها و متغییرها نگزاشته بودید .

  10. #50
    کاربر دائمی آواتار __H2__
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    یک جایی بین Framework و نارمک!
    پست
    1,059

    نقل قول: TCP/IP Socket Programming in Framework.Net 2.0

    سلام
    بعد که رسیدید به Asynchronous یه توضیح مختصر دادید و کل کامل برنامه رو گزاشتید
    طبیعتاً تاپیک درمورد tcp/ip بوده و فرض بر این استوار بوده که دوستان زبان و الگو برنامه نویسی دات نت را میدانند، نتیجتا روی کلمات کلیدی استفاده شده و مباحث شی گرایی و پلیمورفیزم و چند ریسمانی تاکید زیادی نکردم و آنقدر که به نوعی یادآوری باشد اکتفا کردم.
    دلیل نپرداختن به این مباحث فرض بر آشنایی دوستان و دور نشدن از اصل مطلب بوده.

    مثلا Asynchronous و استفاده از متدهای BeginXXXXX و .... و AsyncCallback رو بیشتر توضیح بدید
    درک:
    هر ریسمان جدید در برنامه مثل استخدام یک کارجدید است! (وقتی یک فرد به بانک رفته ، فرد دیگر میتواند تلفن را جواب دهد!)
    وقتی ریسمان جدیدی تولید میشود در یک لحظه بیش از یک قطعه کد شما اجرا میشود
    مثلا توابعی مانند function1 و function2 کدهایشان همزمان با هم اجرا میشود، دیگر یک خط اجرا در برنامه ندارید، مثل مامور کردن دونفر برای کاری در یک مکان که دوکار همزمان با هم پیشرفت خواهند کرد.


    اشکال یابی:
    طبیعتاً دیباگ و اجرای خط به خط کدها در چنین برنامه پیچیده تر و گیج کننده تر خواهد بود.
    چون در لحظه ای کدی در یک مکان از یک رسمان و در لحظه دیگر کدی در یک مکان دیگر از یک ریسمان دیگر اجرا میشود.
    نتیجتاً باید دقت و کیفیت کدتان را افزایش دهید تا حدامکان مشکلی پیش نیاید که بخواهید دنبال حلش باشید!


    درک متد های BeginXXXXX و EndXXXXX:
    اگر تابعی به صورت عادی مانند Func1(arg As InpType) As OutType داشته باشید، وضعیت کاری همچین تابعی حتماً برایتان مشخص است.
    مقادیری مانند InpType میگیرد و یک مقدار مانند OutType پس میدهد.
    همچین تابعی با همین ریسمان (اجازه دهید بگویییم کارگر) جاری کارش را انجام میدهد و وقتی هم کارش تمام شد OutType را پس میدهد، گمان نکنم تا اینجا را مشکلی داشته باشید.

    در برخی موارد همچین توابعی میتواند بسیار کند و زمانبر باشند، مثلاً سرور Tcp که منتظر یک تماس است (تا کسی زنگ بزند و او گوشی را Accept کند) میتواند ساعتها و حتی روزها در انتظار یک تماس باشد ولی کسی تماسی با سوکت مورد نظر نگیرد!
    یا وقتی اطلاعات حجیمی را از یک فایل میخوانید این فرآیند میتواند چندین ثانیه تا چند دقیقه طول بکشد و در این مدت ریسمان شما (کارگر جاری) داخل این متد کارها و فرامین آن را انجام میدهد و نمیتواند کار دیگری در برنامه انجام دهد.


    نتیجتاً برای این کارهای زمان بر و اینکه برنامه نخوابد (تنها ریسمان کارگر موجود را برای انجام یک کار از دست ندهیم و اعمال دیگر روی هوا بماند) از چند ریسمانی استفاده میکنیم (به نوعی چند نفر را در شرکتمان استخدام میکنیم تا یکی را که دنبال کاری فرستادیم یکی دیگر برای کارهای جاری حضور داشته باشد.)


    دات نت اجازه اینکه خودتان مستقیماً ریسمان جدید بسازید و آن را به کاری مشغول کنید را میدهد ولی بعضاً برای راحتی استفاده و برای متدهایی که حدس میزند برنامه نویس بخواهد انها را در ریسمان مجزایی اجرا کند خودش اینکار را فراهم کرده و آماده میکند و تحت دو تابع مانند
    BeginFunc1(arg As InpType, callback As System.AsyncCallback, state As Object) As System.IAsyncResult
    و
    EndFunc1(asyncResult As System.IAsyncResult) As OutType
    ارائه میدهد.

    BeginFunc1 پارامتر InpType مورد نظر را گرفته و کار را انجام میدهد (حالا هر چقدر که طول بکشد) وقتی کارش تمام شد AsyncCallback را که ما به آن داده بودیم اجرا میکند و ما میتوانیم در AsyncCallback مان EndFunc1 را اجرا کنیم و مقدار نتیجه OutType را از آن بگیریم.

    پس از نگاه ساده تر BeginFunc1 کار را با ریسمان دیگری انجام میدهد و وقتی تمام شد به ما اطلاع میدهد که کار بالاخره تمام شده و ما میتوانیم با متد نهایی EndFunc1 مقدار بازگشتی فرآیند مذکور را اخذ کنیم.

    تنها نکته ای که میماند توضیح در مورد AsyncCallback است که BeginFunc1 ان را علاوه بر InpType از ما گرفته.
    AsyncCallback یک Delegate است، Delegate ها همان اشاره گر به توابع هستند که در سایر زبان ها هم با اشکال مختلف داریم.
    یک شی نمونه سازی شده Delegate (مثل AsyncCallback) یک متغییر است که آدرس و یا اگر برایتان قابل فهم تر است Shortcut یک تابع را در خود نگاه میدارد.
    با داشتن یک Delegate ما یا دات نت یا هر کدی دیگری میتواند آن تابع را اجرا کند.


    در واقع دات نت یک AsyncCallback از ما میگیرد تا بداند وقتی کار تمام شد چگونه به ما اطلاع دهد و چه کد و چه کاری را در پایان کار انجام دهد.


    در الگوی Func1 ریسمان جاری کار را انجام میداد و هرچقدر که طول میکشد وقتی میرفتیم خط بعد میدانستیم که Func1 اجرا و تمام شده و فلان OutType نتیجه آن بوده.
    ولی در BeginFunc1 فوراً کد شما به خط بعد از ان میرود و شاید مدت بسیار طولانی طول بکشد تا آن عملیات انجام شود و این هیچ ربطه به کاری که الآن ریسمان اصلی در حال انجام ان است ندارد.
    پس باید مکانیزمی وجود داشته باشد که در پایان کار، این اتمام را به من برنامه نویس اطلاع دهد و کد و کاری که من میخواستم بعد از پایان این کار انجام شود را اجرا کند.

    AsyncCallback همین است.


    شما تابعی با الگوی امضإ (Func2(ar As System.IAsyncResult مینویسید و کاری را که میخواهید در پایان این فرآیند اجرا شود در ان مینویسید (از جمله گرفتن نتیجه کار از EndFunc1) و در زمان اجرای BeginFunc1 آدرس یا Shortcut یا Delegate این را به BeginFunc1 میدهید تا آن بداند، در پایان کار چه کدی را اجرا کند.

    ==============

    من سعی ام را کردم که در کوتاه ترین حد ممکن موضوع را برایتان روشن کنم.
    چند ریسمانی و کنترلر و ارتباط و سینک ریسمان های متعدد با هم و... و... جزئیات بیشتری دارد که دات نت به حق بسیار بسیار کامل تمام این امکانات را در فضای System.Threading قرار داده.

    در کل مطالب فوق من اصلاً هیچ چیز از تجهیزات و امکانات System.Threading را توضیح ندادم و (البته هدف تاپیک هم در این مورد نبوده) ، بحث چند ریسمانی یک مبحث مجزا و پرکاربرد برنامه نویسی است و در هر جایی هم قابل استفاده است.

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

  11. #51

    نقل قول: TCP/IP Socket Programming in Framework.Net 2.0

    سلام
    آقا واقعا دستتون درد نکنه همه چی عالی بود
    فقط من میخواستم بدونم این سبک کد نویسی چطور میتونم یاد بگیرم
    من با تمام مفهوما به کار رفته در کدتون آشنا بودم جز (همون مبحث تاپیک) وقتی کدو دانلود کردم و دیدم چقد زیبا از ابزار های برنامه نویسی استفاده کردید خیلی جذب شدم میخواستم بدونم چطوری میتونم سبک کدنویسی اصولی یاد بگیرم
    ممنون از تمام زحماتی که کشیدین.

  12. #52

    نقل قول: TCP/IP Socket Programming in Framework.Net 2.0

    سلام
    آقا دست شما حسابی درد نکنه من که حسابی کارم راه افتاد.

  13. #53

    نقل قول: TCP/IP Socket Programming in Framework.Net 2.0

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

  14. #54

    نقل قول: TCP/IP Socket Programming in Framework.Net 2.0

    سلام خوبین چجوری میشه اطلاعات رو به صورت استراکت یا کلاس ارسال کرد ممنون میشم بگین
    نقل قول نوشته شده توسط __H2__ مشاهده تاپیک
    سلام

    دقیقاً اصول یک برنامه سرور محور همین است که گفتید و خیلی خوب هم متوجه شدید.

    در اصل خیلی بهتر است پیغام شما به جای یک String ساده یک class یا struct باشد مثلاً با اعضای زیر:
    ID_Sender-Int32
    ID_Receiver-Int32
    ID_MessageType-Byte
    (EndHeader-9Byte)
    MessageBody-Object

    در واقع بسته های پیغام را شامل یک header دلخواه کنید و کمی قانونمند تر کنید.

    در مورد سوال شما، مثلاً میتوان وقتی ID_Receiver عدد صفر یا 1- باشد منظور این باشد که باید در یک حلقه for برای همه ارسال شود.
    حتی در مکانیزم پیشرفته تر میتوان نوع ID_Receiver را یک آرایه گذاشت تا بتوان به تعداد خاصی از افراد مشخص هم پیغام را ارسال کرد.


    ID_MessageType هم وظیفه جداسازی پیغام هایی با نوع مختلف را دارد.
    مثلاً بسته ارسالی شما میتواند یک متن باشد یا یک تک تصویر یا یک فریم از یک فیلم برداری دنباله دارد و یا در یک برنامه مدیریتی کافی نت میتوانید بسته برای کاربر انسانی نباشد و حاوی دستورات سیستمی مثل reset و shutdown و... باشد که مدیر کافی نت بتواند روی کلاینت ها اعمال کند.
    (
    البته در مبنای باز پیچیده تر میتوان به جای ID_MessageType از وراثت و ماژول های سریالی کننده خودکار دات نت هم استفاده کرد، ولی این کار حجم اطلاعات را کمی افزایش میدهد.
    )

    در هر صورت اصل مطلب را که یادبگیرید میبینید که با سوکت مجهز به یک خط ارتباطی راحت بین رایانه ها میشود و میتوانید به راحتی و دلخواه خود هر چیزی را در این خط جابه جا و پردازش کنید.

  15. #55

    نقل قول: TCP/IP Socket Programming in Framework.Net 2.0

    سلام دستتون درد نکنه بابت تاپیکی که گذاشتید و زیبا راجع بهش توضیح دادید..حقیقتش من یه سوالی مطرح کردم دررابطه با انتقال و خواندن اطلاعات در سرور (فایل)....اگه زحمتی نیست این لینک رو یه نگاه بندازید و راهنماییم کنید....به مبحث شما مربوط میشه ....

    https://barnamenevis.org/showthread.p...B1%D9%88%D8%B1

  16. #56
    کاربر دائمی آواتار systam
    تاریخ عضویت
    خرداد 1390
    محل زندگی
    مشهد (امام رضا (ع))
    پست
    973

    نقل قول: TCP/IP Socket Programming in Framework.Net 2.0

    سلام
    من با این کد زمانی کلاینتی فرمان پرینت رو ارسال میکنه مشخص کنه کدام سیستم بوده
    Dim LocalIP As String = Nothing Dim IPHostEntry As System.Net.IPHostEntry = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHost Name())
    For Each IPAddress As System.Net.IPAddress In IPHostEntry.AddressList
    If IPAddress.AddressFamily.ToString() = "InterNetwork" Then
    LocalIP = IPAddress.ToString()
    End If
    Next
    Return LocalIP

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

  17. #57

    نقل قول: TCP/IP Socket Programming in Framework.Net 2.0

    سلام
    من از دات نت استفاده نمی کنم. وی سوالی داشتم.
    اکر روی کارت شبکه یک کامپیوتر چند ای پی ست کرده باشیم مثلا
    xxx.xxx.xxx.123
    xxx.xxx.xxx124
    xxx.xxx.xxx.125

    و بخواهیم به سروری با آدرس xxx.xxx.xxx.126 وصل شویم

    کلاینت برای وصل شدن ار کدام ای پی استفاده میکند؟

صفحه 2 از 2 اولاول 12

برچسب های این تاپیک

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

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