11

การเขียนโปรแกรม Client-Server ด้วย Socket Class



Socket Programing

วันนี้ก็จะเสนอการเขียนโปรแกรมติดต่อ Socket หรือ Socket Programing นั้นเอง แล้วมันมีดียังไง ใช้งานยังไง ในบทความนี้ผมก็จะแสดงการเขียนโปรแกรม

Clien/Server อย่างง่าย เป้าหมายของผมก็คือ เพื่อศึกการทำงานของเซิฟเวอร์ ศึกษาการทำงานของไคร์เอนท์  ศึกษาฟังชันการรับ-ส่งข้อมูล และ โปรแกรมต้องติดต่อสื่อสารกันได้ ในที่นี้โปรแกรมอาจจะไม่สมบูรณ์เท่าไหร่ แต่ก็น่าจะมีประโยชน์สำคนที่เพิ่งเริ่ม หรือ เป็นแนวทางในการทำโปรเจ็คอื่นๆ ต่อไป

Socket Programing

หน้าตาโปรแกรมไม่สวยก็อย่าว่ากันนะครับ ก็ทำเป็นตัวอย่างนี่นา ฮ่าๆๆ ผมจะอธิบายส่วนสำคัญๆ นะครับ ส่วนอื่นๆ ต้องไปดูซอร์สโค้ดกันเองละครับ

รอการเชื่อมต่อจาก Client CODE C#

   private void AcceptConn(IAsyncResult iar)
        {
            try
            {
                Socket oldserver = (Socket)iar.AsyncState; //คาส information การติดต่อ มาเป็น Socket
                client = oldserver.EndAccept(iar); //รับการติดต่อจาก Client
                listData.Items.Add("Connection froms: " + client.RemoteEndPoint);
                receiver = new Thread(new ThreadStart(ReceiveData)); //ทำ Thread รับข้อมูล
                receiver.Start(); // Start Thread
            }
            catch (Exception ex)
            {

            }
        }

CODE VB.NET

Private Sub AcceptConn(iar As IAsyncResult)
	Try
		Dim oldserver As Socket = DirectCast(iar.AsyncState, Socket)
		'คาส information การติดต่อ มาเป็น Socket
		client = oldserver.EndAccept(iar)
		'รับการติดต่อจาก Client
		listData.Items.Add("Connection froms: " + client.RemoteEndPoint)
		receiver = New Thread(New ThreadStart(ReceiveData))
		'ทำ Thread รับข้อมูล
			' Start Thread
		receiver.Start()

	Catch ex As Exception
	End Try
End Sub

รอรับข้อมูล CODE C#

จะเห็นว่าผมใช้ Thread ไม่ใช้ While(true) เพราะอะไรนั้น ท่านจะรู้ได้ตัวเอง

     private void ReceiveData()  //รับ packet จาก Client/Server เด้อ
        {
            int recv;
            string strData;

            while (client.Connected) //เช็คสถานะการเชื่อมต่อ
            {
                try
                {
                    recv = client.Receive(data);
                    strData = Encoding.Default.GetString(data, 0, recv);
                    listData.Items.Add("รับ: " + strData);
                }
                catch
                {

                    // MessageBox.Show(ex.Message);
                }
            }
        }

CODE VB.NET

Private Sub ReceiveData()
'รับ packet จาก Client/Server เด้อ
	Dim recv As Integer
	Dim strData As String

	While client.Connected
		'เช็คสถานะการเชื่อมต่อ
		Try
			recv = client.Receive(data)
			strData = Encoding.[Default].GetString(data, 0, recv)
			listData.Items.Add("รับ: " & strData)

				' MessageBox.Show(ex.Message);
		Catch
		End Try
	End While
End Sub

การเขียนโปรแกรมของผมอาจจะไม่เหมือนชาวบ้าน อ่านยากสักหน่อย ก็ไม่ได้เก่งอะไรหรอกครับ แค่อยากบอกเท่านั้นเอง ฮ่าๆๆ

>>ลิ้งดาวโหลดซอร์สโค้ด<<

แก้ไขครั้งล่าสุดเมื่อ : 30 มีนาคม 2555

การเขียนโปรแกรม Client-Server Using .NET เพิ่ม โค้ด  VB.NET และ จัดโค้ดให้ดูง่าย

Incoming search terms:

  • c# socket programming
  • c# client server socket programming
  • การเขียน socket
  • โปรแกรม client server
  • c# client server
Filed in: General Tags: , ,

Related Posts

Bookmark and Promote!

แสดงความคิดเห็น

© 2014 ไอที-เดฟโซน. All Rights Reserved. XHTML / CSS Valid.