Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > สอบถามเรื่อง C# กับ WPF ครับผม สอบถามถึง การทำ SERVER และ CLIENT ครับ



 

สอบถามเรื่อง C# กับ WPF ครับผม สอบถามถึง การทำ SERVER และ CLIENT ครับ

 



Topic : 070538

Guest




คือผมจะสอบถามถึง C# กับ WPF ครับผม สอบถามถึง การทำ SERVER และ CLIENT ครับ สมมติว่า ผมมีเครื่องคอมสองเครื่องและผมก็เขียนโปรแกรม C# แบบ WPF โดยที่ให้อีกเครื่องเป็น SERVER และ อีกเครื่องเป็น Client นะครับ รบกวนด้วยนะครับ มัน งง กับ โคดนะครับ เลยสอบถามถึงผู้รุ้



Tag : .NET, C#, VS 2008 (.NET 3.x)







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-12-18 12:39:19 By : bigsuntat View : 2447 Reply : 27
 

 

No. 1



โพสกระทู้ ( 70 )
บทความ ( 0 )



สถานะออฟไลน์


http://www.codeproject.com/KB/IP/NetComm.aspx
ผมใช้ Netcomm กับ WPF เวิคสุดๆละครับลองดุนะครับถ้า ไม่ได้ยังไงเดียวผมเขียนเป็น WPF ให้ครับ








ประวัติการแก้ไข
2011-12-18 13:42:04
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-18 13:37:45 By : Kotakin
 


 

No. 2

Guest


รบกวนด้วยนะครับตอนนี้ผม งง ไป หมดแล้ววววว T_T
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-18 13:50:11 By : bigsuntat
 

 

No. 3



โพสกระทู้ ( 70 )
บทความ ( 0 )



สถานะออฟไลน์


รอสักครู่
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-18 13:54:33 By : Kotakin
 


 

No. 4

Guest


ขอเป็น WPF กับ C# นะครับ คือผม จะไปทำ เป็นเกมส์ WII แบบ Network นะครับ แต่ตอนนี้ ต้องทำ DEMO ไปก่อน ก็คือ เวลา ของเครื่อง SERVER มันสามารถ ไปขึ้นที่ฝั่ง CLIENT ได้เลยนะครับ งง ปะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-18 13:55:38 By : bigsuntat
 


 

No. 5



โพสกระทู้ ( 70 )
บทความ ( 0 )



สถานะออฟไลน์


เวลาโชว์ที่บนโปรแกรม Client รึ เช่น 18/12/2554 14:13:03 แบบนี้เหรอ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-18 14:08:30 By : Kotakin
 


 

No. 6

Guest


อ่อครับ เป็น ยังงั้นก็ได้หรือเป็น แบบ นาฬิกา เลย อะครับ ถ้าเป็น แบบ นาฬิกาเลย ละครับ เช่น

Img
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-18 14:14:08 By : bigsuntat
 


 

No. 7

Guest


งงปะครับท่าน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-18 14:21:47 By : bigsuntat
 


 

No. 8



โพสกระทู้ ( 70 )
บทความ ( 0 )



สถานะออฟไลน์


ผมทำแบบส่งเวลาเเสดงที่ Client ให้ละกันครับที่เหลือประยุก เอาละกันนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-18 14:26:21 By : Kotakin
 


 

No. 9

Guest


ได้ครับ รบกวน ส่งมาที่ [email protected] เลยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-18 14:31:39 By : bigsuntat
 


 

No. 10

Guest


ส่งมายังคับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-18 14:39:48 By : bigsuntat
 


 

No. 11



โพสกระทู้ ( 70 )
บทความ ( 0 )



สถานะออฟไลน์


ส่งไปละครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-18 14:54:11 By : Kotakin
 


 

No. 12

Guest


คุณครับมัน error ตรง runClient.SendData(S2BArr(tbx_Msg.Text));// to server
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-18 15:08:01 By : bigsuntat
 


 

No. 13



โพสกระทู้ ( 70 )
บทความ ( 0 )



สถานะออฟไลน์


ลอง Capture รูปมาให้ดูหน่อยครับ มันฟ้องว่าไร
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-18 15:11:53 By : Kotakin
 


 

No. 14



โพสกระทู้ ( 70 )
บทความ ( 0 )



สถานะออฟไลน์


ของผม รันปกดี

test
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-18 15:15:45 By : Kotakin
 


 

No. 15

Guest


Img
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-18 15:16:49 By : bigsuntat
 


 

No. 16

Guest


ผม แคปหน้าจอมาแล้ว ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-18 15:23:12 By : bigsuntat
 


 

No. 17



โพสกระทู้ ( 70 )
บทความ ( 0 )



สถานะออฟไลน์


ลอง Capture แบบรูปผมมาให้ดูหน่อยครับ


555
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-18 15:23:58 By : Kotakin
 


 

No. 18

Guest


OK ครับผมได้แล้ว แต่ ผมอยากได้ แบบว่า เวลา ของ SERVER อะครับ แล้ว ก็มีใน CLIENT ด้วย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-18 15:25:09 By : bigsuntat
 


 

No. 19

Guest


นี่คือ CODE ฝั่ง SERVER

Code (C#)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using NetComm;
using System.Windows.Threading;

namespace WPFServer
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        private Host runHost = new Host(2020);
        DispatcherTimer timer;
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            runHost.onConnection += new Host.onConnectionEventHandler(runHost_onConnection);
            runHost.DataReceived += new Host.DataReceivedEventHandler(runHost_DataReceived);
            runHost.lostConnection += new Host.lostConnectionEventHandler(runHost_lostConnection);

            runHost.StartConnection();
        }

        private void runHost_onConnection(string id)
        {
            if (id == "client")
            {
                lbl_Status.Content = "Connect";
                lbl_Status.Background = Brushes.Green;
                SendTime();
            }
        }
        private void runHost_DataReceived(string id, byte[] data)
        {
            tbx_Log.Text += id + " : " + BArr2S(data);
        }

        private void runHost_lostConnection(string id)
        {
            if (id == "client")
            {
                lbl_Status.Content = "Lost Connect";
                lbl_Status.Background = Brushes.Red;
            }
        }
        private byte[] S2BArr(string data)
        {
            return ASCIIEncoding.UTF8.GetBytes(data);
        }

        private string BArr2S(byte[] data)
        {
            return ASCIIEncoding.UTF8.GetString(data);
        }

        public void SendTime()
        {
            timer = new DispatcherTimer();
            timer.Tick += new EventHandler(delegate(object s, EventArgs a)
            {
                runHost.SendData("client", S2BArr("time," + DateTime.Now.ToString()));
            });
            timer.Interval = TimeSpan.FromMilliseconds(1000);
            timer.Start();
        }

        private void btn_Send_Click(object sender, RoutedEventArgs e)
        {
            runHost.SendData("client", S2BArr("msg,"+tbx_Msg.Text));
        }

        private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {
            if (runHost.Listening)
                runHost.CloseConnection();
        }
    }
}




รบกวนช่วยอธิบายหน้าที่ หรือ COMMENT ในแต่ละขั้นตอนได้ไหมครับผมมือใหม่
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-18 15:27:44 By : bigsuntat
 


 

No. 20

Guest


นี่คือ CODE ฝั่ง CLIENT

Code (C#)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using NetComm;
using System.Windows.Threading;

namespace WPFClient
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        private Client runClient = new Client();
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            runClient.Connected += new Client.ConnectedEventHandler(runClient_Connected);
            runClient.DataReceived += new Client.DataReceivedEventHandler(runClient_DataReceived);
            runClient.Disconnected += new Client.DisconnectedEventHandler(runClient_Disconnected);
        }

        private void runClient_Connected()
        {
            lbl_Status.Content = "Connect";
            lbl_Status.Background = Brushes.Green;
        }

        private void runClient_DataReceived(byte[] data, string id)
        {
            string[] lineArr = BArr2S(data).Split(',');
            if (lineArr[0] == "time")
            {
                lbl_TimeServer.Content = lineArr[1];
            }
            else
            {
                tbx_Log.Text += lineArr[1]+"\r\n";
            }
        }

        private void runClient_Disconnected()
        {
            lbl_Status.Content = "Lost Connect";
            lbl_Status.Background = Brushes.Red;
        }

        private byte[] S2BArr(string data)
        {
            return ASCIIEncoding.UTF8.GetBytes(data);
        }

        private string BArr2S(byte[] data)
        {
            return ASCIIEncoding.UTF8.GetString(data);
        }

        private void btn_Send_Click(object sender, RoutedEventArgs e)
        {
            runClient.SendData(S2BArr(tbx_Msg.Text));// to server
        }

        private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {
            if (runClient.isConnected)
                runClient.Disconnect();
        }

        private void btn_Connect_Click(object sender, RoutedEventArgs e)
        {
            runClient.Connect(tbx_IPServer.Text,2020,"client");
        }
    }
}



รบกวนช่วยอธิบายหน้าที่ หรือ COMMENT ในแต่ละขั้นตอนได้ไหมครับผมมือใหม่
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-18 15:28:08 By : bigsuntat
 


 

No. 21



โพสกระทู้ ( 70 )
บทความ ( 0 )



สถานะออฟไลน์


ลองศึกษาเเละประยุกดูนะครับ http://www.codeproject.com/KB/WPF/WpfClock.aspx
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-18 15:29:19 By : Kotakin
 


 

No. 22

Guest


คุณช่วยอธิบาย CODE ได้ไหมครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-18 15:32:42 By : bigsuntat
 


 

No. 23



โพสกระทู้ ( 70 )
บทความ ( 0 )



สถานะออฟไลน์


ใจเย็นสิครับ -*-
Code (C#)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using NetComm;
using System.Windows.Threading;

namespace WPFServer
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        private Host runHost = new Host(2020);//Server เปิด port 2020
        DispatcherTimer timer;
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            runHost.onConnection += new Host.onConnectionEventHandler(runHost_onConnection);        //Event เมื่อมี client เชื่อมต่อเข้ามา ไปดูที่ funtion runHost_onConnection
            runHost.DataReceived += new Host.DataReceivedEventHandler(runHost_DataReceived);        // Event เมื่อมี Client ส่งข้อมูลมา ไปดูที่ funtion runHost_DataReceived
            runHost.lostConnection += new Host.lostConnectionEventHandler(runHost_lostConnection);  //Event เมื่อ Client ออกจากระบบ ไปดูที่ funtion runHost_lostConnection

            runHost.StartConnection();// ทำการเปิด Server 
        }

        private void runHost_onConnection(string id)//เมื่อมี Client เชื่อมต่อมา จะส่ง id ของ Client มา function นี้
        {
            if (id == "client")
            {
                lbl_Status.Content = "Connect";
                lbl_Status.Background = Brushes.Green;
                SendTime();
            }
        }
        private void runHost_DataReceived(string id, byte[] data)//เมื่อ Client ส่งข้อมูลมา id คือใครส่งมา เเละ data คือข้อมมูลที่ส่ง
        {
            tbx_Log.Text += id + " : " + BArr2S(data);//แปลง byte[] เป็น string โดยส่ง data ไป
        }

        private void runHost_lostConnection(string id)// เมื่อ Client หลุด id คือชื่อของ Client ที่หลุด
        {
            if (id == "client")
            {
                lbl_Status.Content = "Lost Connect";
                lbl_Status.Background = Brushes.Red;
            }
        }
        private byte[] S2BArr(string data)//แปลง String เป็น Byte[] 
        {
            return ASCIIEncoding.UTF8.GetBytes(data);
        }

        private string BArr2S(byte[] data)//แปลง Byte[] เป็น String 
        {
            return ASCIIEncoding.UTF8.GetString(data);
        }

        public void SendTime()//ใช้ Timer ส่งเวลาไปยัง Server ทุก 1 ms
        {
            timer = new DispatcherTimer();
            timer.Tick += new EventHandler(delegate(object s, EventArgs a)
            {
                runHost.SendData("client", S2BArr("time," + DateTime.Now.ToString()));//SendData("ส่งถึงใคร",S2BArr("ส่งข้อมูลอะไรไป"))
            });
            timer.Interval = TimeSpan.FromMilliseconds(1000);//ส่ง 1 ms
            timer.Start();
        }

        private void btn_Send_Click(object sender, RoutedEventArgs e)
        {
            runHost.SendData("client", S2BArr("msg," + tbx_Msg.Text));//SendData("ส่งถึงใคร",S2BArr("ส่งข้อมูลอะไรไป"))
        }

        private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {
            if (runHost.Listening)
                runHost.CloseConnection();
        }
    }
}


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-18 15:39:54 By : Kotakin
 


 

No. 24



โพสกระทู้ ( 70 )
บทความ ( 0 )



สถานะออฟไลน์


Code (C#)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using NetComm;
using System.Windows.Threading;

namespace WPFClient
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        private Client runClient = new Client();
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            runClient.Connected += new Client.ConnectedEventHandler(runClient_Connected);//Event เมื่อเชื่อมต่อ server สำเร็จ
            runClient.DataReceived += new Client.DataReceivedEventHandler(runClient_DataReceived);//Event เมื่อมีข้อมูลส่งเข้ามา
            runClient.Disconnected += new Client.DisconnectedEventHandler(runClient_Disconnected);//Event เมื่อหลุดการเชื่อมต่อ
        }

        private void runClient_Connected()//เมื่อเชื่อมต่อสำเร็จจะทำอะไร
        {
            lbl_Status.Content = "Connect";
            lbl_Status.Background = Brushes.Green;
        }

        private void runClient_DataReceived(byte[] data, string id)//เมื่อมีข้อมูลส่งมา
        {
            //รูปแบบการส่งจาก server = time,18/12/2554 14:32:01
            string[] lineArr = BArr2S(data).Split(',');//จับตัว , เเละ lineArr[0] มันจะ = time เเละ lineArr[1] = 18/12/2554 14:32:01
            if (lineArr[0] == "time")
            {
                lbl_TimeServer.Content = lineArr[1];
            }
            else
            {
                tbx_Log.Text += lineArr[1]+"\r\n";
            }
        }

        private void runClient_Disconnected()//เมื่อหลุดการเชื่อมต่อ
        {
            lbl_Status.Content = "Lost Connect";
            lbl_Status.Background = Brushes.Red;
        }

        private byte[] S2BArr(string data)//แปลง String เป็น Byte[]
        {
            return ASCIIEncoding.UTF8.GetBytes(data);
        }

        private string BArr2S(byte[] data)//แปลง Byte[] เป็น String
        {
            return ASCIIEncoding.UTF8.GetString(data);
        }

        private void btn_Send_Click(object sender, RoutedEventArgs e)
        {
            runClient.SendData(S2BArr(tbx_Msg.Text));// to server
        }

        private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {
            if (runClient.isConnected)
                runClient.Disconnect();
        }

        private void btn_Connect_Click(object sender, RoutedEventArgs e)
        {
            runClient.Connect(tbx_IPServer.Text, 2020, "client");//เชื่อมต่อกับ server sample = .Connect("server IP อะไร", port อะไร , "ชื่อClient ของคุณ")
        }
    }
}


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-18 15:49:53 By : Kotakin
 


 

No. 25

Guest


ขอ facebook คุณได้ปะครับเอาไว้ติดต่อ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-18 15:52:02 By : bigsuntat
 


 

No. 26



โพสกระทู้ ( 36 )
บทความ ( 0 )



สถานะออฟไลน์



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-18 17:13:46 By : Drewsn32
 


 

No. 27



โพสกระทู้ ( 70 )
บทความ ( 0 )



สถานะออฟไลน์


แอดมาเเล้วนะ ^^
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-18 23:16:38 By : Kotakin
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามเรื่อง C# กับ WPF ครับผม สอบถามถึง การทำ SERVER และ CLIENT ครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่