Rank: มือฝึกหัด Groups: Member
Joined: 7/6/2008 Posts: 5 Location: thailand
|
ขอแบบละเอียดยิบเลยยิ่งดีครับ คือว่า สนใจเรื่อง Network Programming มากมาย แต่อ่อนด้อย ภาษาประกิดไปดูใน MSDN มา งง ไม่รู้เรื่องเลย อยากรู้ว่า เราจะรู้ได้อย่างไรว่า ข้อมูลส่งมาตอนไหน แล้วหมดหรือยัง อยากให้อธิบาย ขึ้นตอนการรับ การส่งข้อมูล ของ Socket TCP ให้ละเอียดอ่ะครับ
|
Rank: มือฝึกหัด Groups: Member
Joined: 5/8/2008 Posts: 3 Location: Krabi Thailand
|
เหอะๆ เริ่มต้นเหมือนผมเลย ตอนผมจะเปลี่ยนจาก winsock บน vb6 มาเป็น socket บน .net งงกะเรื่องพักหนึ่งเหมือนกัน
เอาเป็นว่าถ้าแปลแบบทื่อๆ เลย Asynchronous เป็นการทำงานที่ไม่ขึ้นกับเวลา ยังไง ลองดู
ถ้าเปรียบคุณเป็นเจ้าบ้าน ถ้าเกิดว่าคุณกำลังรอแขกมาบ้านอยู่ แล้วคุณเลือกการทำงานแบบ Synchronous
คุณจะต้องนั่งเฝ้าที่หน้าประตูเลย ว่า เอ มีใครมาหรือยังน้า โดยที่คุณไม่มีโอกาสไปทำงานอื่นเลย ถ้าเป็นโปรแกรมคุณต้องเขียนวนลูป
เช๊กตลอดเวลาเลย หรือไม่งั้นก็แยก Thread เอาเอง
แต่ถ้าเป็นการทำงานแบบ Asynchronous คุณไม่จำเป็นต้องนั่งเฝ้าอยู่ตลอดเวลา คุณก็แค่คอยฟังเสียงเคาะประตูบ้าน
จะเห็นว่าเราสามารถทำงานอื่นไปได้ด้วย ในขณะเดียวกันหูก็คอยฟังเสียงแขกมาบ้าน พอได้ยินคุณก็วางงานที่ทำแล้วออกไปต้อนรับ
จะเห็นว่า แบบหลังค่อนข้างมีประสิทธิภาพกว่า
แล้วมันเกี่ยวยังไงกับ Socket ถ้าลองเปลี่ยนเหตุการณ์ข้างบนจากเจ้าบ้านเป็น server จากแขกเป็นไคลเอนต์ มันก็คือการรอรับ Accept
หรือการเชื่อมต่อจากไคลเอนต์นั่นเอง
Asynchronouse Method บน Socket มักจะขึ้นต้นด้วย Begin และจบด้วย End
เช่น BeginAccept และ EndAccept ยังไงต้องลองดู MSDN อีกที
ส่วนขั้นตอนการรับ-ส่งข้อมูลแบบ tcp มีเยอะแยะทางอินเตอร์เน๊ต ไม่ขออธิบาย เพราะถ้าคุณจะเขียนโปรแกรมประเภทนี้ ต้องมีพื้นฐานด้าน network มาบ้าง
|
 Rank: มือมืด Groups: Member
Joined: 3/21/2008 Posts: 53 Location: Whenever you code,you've reached my places.
|
ตาม rep #1 นั้นถูกต้องแล้วครับ เห็นภาพชัดเจน
อย่างไรก็ตามคุณจำเป็นต้องมีพื้นฐานด้าน Asynchronous programming
ทดลองศึกษาเรื่องการทำ Async call หรือ IAsyncResult pattern
ดูครับ ทำความรู้จักกับ Process thread แล้วก็ธรรมชาติของมันซะก่อนคับ Love = λygh·g(y(y)(h,g), y(y)(h,g))
Code:Love(Love)(I, U) = λgh·g(Love(Love)(h,g), Love(Love)(h,g))(I, U) = λh·I(Love(Love)(h,I), Love(Love)(h,I))(U) = I(Love(Love)(U,I), Love(Love)(U,I)) = I(Love(Love)(U,I)) Love Combinator!!!!
|