PDA

View Full Version : کمک - ارسال رشته های تو در تو در شبکه



arman_Delta2002
یک شنبه 29 آذر 1388, 10:37 صبح
سلام . من میخوام یک رشته ارسال کنم ارسال هم میشه مشکلی نیست دریافت هم میشه ولی من میخوام تو یک رشته هم آی پی و هم نوع ارسال رو مشخص کنم و دستورات مربوط به نوع خوب بزار بشتر توضیح بدم من میخوام یک رشته که مثلا شامل ( یک کاراکتر ویژه است )

IP:127.0.0.1 Status:CheckLogin UserName:Ali Password:11 TimeLogin:13:43 Limit:Adminمثلا رشته بالا ارسال میشه (طول نا مشخص) حالا چطوری قسمت عملاتی رو از داده جداکنم مثل عملیاتی : IP و داده ای : 127.0.0.1 راه حلی سراق دارین .
توجه آرایه قابل ارسال نیست (استفاده از کامپننت IPWork) فقط رشته اونم نه به صورت آرایه.
دیگه کلافه شدم:عصبانی++:

mehdi.mousavi
یک شنبه 29 آذر 1388, 14:44 عصر
سلام . من میخوام یک رشته ارسال کنم ارسال هم میشه مشکلی نیست دریافت هم میشه ولی من میخوام تو یک رشته هم آی پی و هم نوع ارسال رو مشخص کنم و دستورات مربوط به نوع خوب بزار بشتر توضیح بدم من میخوام یک رشته که مثلا شامل ( یک کاراکتر ویژه است )

IP:127.0.0.1 Status:CheckLogin UserName:Ali Password:11 TimeLogin:13:43 Limit:Adminمثلا رشته بالا ارسال میشه (طول نا مشخص) حالا چطوری قسمت عملاتی رو از داده جداکنم مثل عملیاتی : IP و داده ای : 127.0.0.1 راه حلی سراق دارین .
توجه آرایه قابل ارسال نیست (استفاده از کامپننت IPWork) فقط رشته اونم نه به صورت آرایه.
دیگه کلافه شدم:عصبانی++:

سلام.
خوب چرا سعی میکنید داده ها رو بصورت ASCII ارسال کنید؟ شما میتونید براحتی یک XML بسازید، و کاراکترهای کنترلی خودتون رو هم در قالب همون XML بصورت CDATA و Base64 شده قرار بدید، سپس XML رو روی Wire ارسال کنید. در سمت دیگه، دریافت کننده، اطلاعات رو از رو Wire بر میداره، اونو Deserialize میکنه و از XML استفاده می کنه.

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

موفق باشید.

arman_Delta2002
یک شنبه 29 آذر 1388, 15:46 عصر
به این میگن فکر آسوده مرسی . ولی برنامه من شبیه سازی نت متینگ ویندوزه . فکر کنم اگه این روش رو در چت بین کلایت ها استفاده کنم برنامه پیچیدگی بیخودی پیدا میکنه

mehdi.mousavi
یک شنبه 29 آذر 1388, 16:59 عصر
به این میگن فکر آسوده مرسی . ولی برنامه من شبیه سازی نت متینگ ویندوزه . فکر کنم اگه این روش رو در چت بین کلایت ها استفاده کنم برنامه پیچیدگی بیخودی پیدا میکنه


آهان. اگر اینطوری هستش چرا از یکی از پروتکلهای استاندارد موجود استفاده نمیکنید تا بتونید با بقیه Client ها هم در ارتباط باشید؟ مثلا اگر از Jabber Protocol استفاده کنید، اونوقت میتونید با خیلی از Client های Chat موجود هم در ارتباط باشید. توصیه من استفاده از یک Protocol استاندارد برای انجام اینکار هستش.

موفق باشید.

arman_Delta2002
یک شنبه 29 آذر 1388, 20:40 عصر
چطوری میشه یک Structure رو به یک آرایه از نوع Byte فرستاد ؟ Structure از نوع های مختلفی شامل شود.:بوس:

mehdi.mousavi
یک شنبه 29 آذر 1388, 21:30 عصر
چطوری میشه یک Structure رو به یک آرایه از نوع Byte فرستاد ؟ Structure از نوع های مختلفی شامل شود.:بوس:

سلام.
میتونید از BinaryFormatter استفاده کنید (http://msdn.microsoft.com/en-us/library/system.runtime.serialization.formatters.binary.bin aryformatter%28VS.71%29.aspx) تا Structure رو بع یک Byte Array تبدیل کنید.

موفق باشید.

arman_Delta2002
یک شنبه 29 آذر 1388, 21:52 عصر
بازم مرسی هرچی تلاش کردم نتونسم بازم کارم رو راه بندازم شرمنده ام.
من دقیقن این کارو میخوام این کار انجام شه پروژم راه افتاده لنگ این کارم. بازم بابت توجهت ممنونم فراوان .


Public Structure Send1
Dim FName As String
Dim LName As String
Dim Age As Integer
End Structure

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim SR As Send1
Dim TextB() As Byte
SR.FName = "Arman"
SR.LName = "Bay"
SR.Age = 22
TextB = SR
IPport.Send(TextB)
End Sub

mehdi.mousavi
دوشنبه 30 آذر 1388, 11:57 صبح
بازم مرسی هرچی تلاش کردم نتونسم بازم کارم رو راه بندازم شرمنده ام. من دقیقن این کارو میخوام این کار انجام شه پروژم راه افتاده لنگ این کارم. بازم بابت توجهت ممنونم فراوان.

میتونید به این شکل عمل کنید:

public static byte[] Serialize(T graph)
{
if (graph == null)
throw new ArgumentNullException("graph");

using (MemoryStream ms = new MemoryStream())
{
BinaryFormatter fmt = new BinaryFormatter();
fmt.Serialize(ms, graph);
return ms.ToArray();
}
}


میتونید این متود رو با Instance مورد نظرتون از Structure فراخوانی کنید تا Byte Array متناظر رو بگیرید.

موفق باشید.

پاورقی: من VB بلد نیستم، بهمین دلیل کد فوق رو براتون به C#‎ گذاشتم.

mostafa_shaeri_tj
دوشنبه 30 آذر 1388, 12:09 عصر
البته میتونستید از پردازش رشته نیز استفاده کنید.

arman_Delta2002
جمعه 04 دی 1388, 13:21 عصر
باز هم ممنون از کمک فراوان شما دوست گرامی


[source="csharp"]public static byte[] Serialize(T graph)


(T graph)
میتونین بگین T از کجا اومد ؟ فکر کنم T نام ساختار باشه !


البته میتونستید از پردازش رشته نیز استفاده کنید.
میتونین بیشتر توضیح بدید؟

arman_Delta2002
شنبه 05 دی 1388, 09:11 صبح
باز هم ممنون از کمک فراوان شما دوست گرامی


[source="csharp"]public static byte[] Serialize(T graph)


(T graph)
میتونین بگین T از کجا اومد ؟ فکر کنم T نام ساختار باشه !