Socket Programing
วันนี้ก็จะเสนอการเขียนโปรแกรมติดต่อ Socket หรือ Socket Programing นั้นเอง แล้วมันมีดียังไง ใช้งานยังไง ในบทความนี้ผมก็จะแสดงการเขียนโปรแกรม Clien/Server อย่างง่าย เป้าหมายของผมก็คือ เพื่อศึกการทำงานของเซิฟเวอร์ ศึกษาการทำงานของไคร์เอนท์ ศึกษาฟังชันการรับ-ส่งข้อมูล และ โปรแกรมต้องติดต่อสื่อสารกันได้ ในที่นี้โปรแกรมอาจจะไม่สมบูรณ์เท่าไหร่ แต่ก็น่าจะมีประโยชน์สำคนที่เพิ่งเริ่ม หรือ เป็นแนวทางในการทำโปรเจ็คอื่นๆ ต่อไปหน้าตาโปรแกรมไม่สวยก็อย่าว่ากันนะครับ ก็ทำเป็นตัวอย่างนี่นา ฮ่าๆๆ ผมจะอธิบายส่วนสำคัญๆ นะครับ ส่วนอื่นๆ ต้องไปดูซอร์สโค้ดกันเองละครับ
รอการเชื่อมต่อจาก 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# ให้ server กับ client ติดต่อกัน




