Client using System; using System.Collections.Generic; using System.Text; using System.Net; using System.Net.Sockets; namespace Client_1 { class Program { static void Main(string[] args) { //ตรวจสอบขอมูลที่พิมพิ์ if (args.Length != 1) System.Console.WriteLine("Using: TimeClient_2 <TimeServer>"); else {
การเปดชองทางการรับสงขอมูล ClinetจะติดตอServerตองมี2บรรทัดนี้
TcpClient timeClient = new TcpClient(args[0], 8888); NetworkStream ns = timeClient.GetStream(); // สรางชองทางการติดตอ byte[] buff = new byte[1024]; //ประกาศตัวแปร สําหรับเก็บขอมูลจาก int recvByte; string receiveMsg; //ประกาศตัวแปรเพื่อรับขอมูลจาก Server
//รับขอความจาก Server (Welcome, What's your name?) การรับขอมูลตองแปลงจาก Byte -> String
recvByte = ns.Read(buff, 0, buff.Length); receiveMsg = Encoding.ASCII.GetString(buff, 0, recvByte); System.Console.WriteLine("Receive : {0}", receiveMsg);
//รอรับคาจากคียบอด string requestMsg = System.Console.ReadLine(); //สงคา ที่ไดรับจากการกดคียบอด ns.Write(Encoding.ASCII.GetBytes(requestMsg), 0, requestMsg.Length);
การสงมูลตองแปลงจาก String -> Byte
//รับขอความจาก Server (Hi! Name) recvByte = ns.Read(buff, 0, buff.Length); receiveMsg = Encoding.ASCII.GetString(buff, 0, recvByte); System.Console.WriteLine("Receive : {0}", receiveMsg);
//รับขอความจาก Server (Enter Number) recvByte = ns.Read(buff, 0, buff.Length); receiveMsg = Encoding.ASCII.GetString(buff, 0, recvByte); System.Console.WriteLine("Receive : {0}", receiveMsg);
//รับคาจากคียบอด และ สงคาออก requestMsg = System.Console.ReadLine(); ns.Write(Encoding.ASCII.GetBytes(requestMsg), 0, requestMsg.Length);
//รับขอความจาก Server (YouWin หรือ YouLost) recvByte = ns.Read(buff, 0, buff.Length); receiveMsg = Encoding.ASCII.GetString(buff, 0, recvByte); System.Console.WriteLine("Receive : {0}", receiveMsg); //แสงคาที่รับเขามา Console.ReadLine(); timeClient.Close(); } } } }
using using using using using
System; System.Collections.Generic; System.Text; System.Net; System.Net.Sockets;
Server
namespace Server_1 { class Program { static void Main(string[] args) { IPEndPoint localEP = new IPEndPoint(IPAddress.Any, 8888); //ประกาศตัวแปร เก็บคาIP Client ฝง Server ตองมี TcpListener timeServer = new TcpListener(localEP); 4 บรรทัดนี้เสมอ timeServer.Start(); //เริ่มสตารการทํางาน System.Console.WriteLine("Time Server Started...."); while (true) // วนลูปรอรับการ Conect จาก Client {
TcpClient timeClient = timeServer.AcceptTcpClient(); //รอ Client Connect IPEndPoint clientEP = (IPEndPoint)timeClient.Client.RemoteEndPoint; System.Console.WriteLine("Accepted a new connection from {0}", clientEP.Address); clientHandling(timeClient); //เรียกฟงชัน่ clientHandling timeClient.Close(); System.Console.WriteLine("Disconnect the connection from {0}\n", clientEP.Address); } timeServer.Stop(); System.Console.ReadLine(); } static void clientHandling(TcpClient acceptedClient) { NetworkStream ns = acceptedClient.GetStream(); byte [] buff = new byte [1024]; //ประกาศตัวแปรเพื่อเก็บขอมูลจาก Client int recvByte; string stringBuff; //สง (Welcome, What's your name?) stringBuff="Welcome, What's your name? "; ns.Write(Encoding.ASCII.GetBytes(stringBuff), 0, stringBuff.Length); //รับ Name recvByte = ns.Read(buff, 0, buff.Length); stringBuff = Encoding.ASCII.GetString(buff, 0, recvByte); System.Console.WriteLine("Received : {0}", stringBuff); //สง Hi! Name stringBuff = "Hi! " + stringBuff; ns.Write(Encoding.ASCII.GetBytes(stringBuff), 0, stringBuff.Length); //สง (Enter Number:) stringBuff = "Enter Number:"; ns.Write(Encoding.ASCII.GetBytes(stringBuff), 0, stringBuff.Length); //รับ (Number) recvByte = ns.Read(buff, 0, buff.Length); stringBuff = Encoding.ASCII.GetString(buff, 0, recvByte); System.Console.WriteLine("Received : {0}", stringBuff); int num = int.Parse(stringBuff); //แปลงคาที่รับเขามา Stringที่รับมาใหเปน int if (num == 55) stringBuff = "You Win"; else stringBuff = "You Lost"; //สง(YouWin หรือ YouLost)
ns.Write(Encoding.ASCII.GetBytes(stringBuff), 0, stringBuff.Length); ns.Close(); } } }
using System; using System.Collections.Generic; using System.Text;
Client
using System.Net; using System.Net.Sockets; namespace Client { class Program { static void Main(string[] args) { TcpClient timeClient = new TcpClient("127.0.0.1", 9000); NetworkStream ns = timeClient.GetStream(); byte[] buff = new byte[1024]; int recvByte; string receiveMsg = ""; string requestMsg = ""; // Wait Receive form server recvByte = ns.Read(buff, 0, buff.Length); receiveMsg = Encoding.ASCII.GetString(buff, 0, recvByte); System.Console.WriteLine(receiveMsg); // Send Hi! requestMsg = "Hi!"; ns.Write(Encoding.ASCII.GetBytes(requestMsg), 0, requestMsg.Length); // Receive Enter width recvByte = ns.Read(buff, 0, buff.Length); receiveMsg = Encoding.ASCII.GetString(buff, 0, recvByte); System.Console.Write(receiveMsg); // Send widht requestMsg = System.Console.ReadLine(); ns.Write(Encoding.ASCII.GetBytes(requestMsg), 0, requestMsg.Length); // Receive Enter hight recvByte = ns.Read(buff, 0, buff.Length); receiveMsg = Encoding.ASCII.GetString(buff, 0, recvByte); System.Console.Write(receiveMsg); // Send hight requestMsg = System.Console.ReadLine(); ns.Write(Encoding.ASCII.GetBytes(requestMsg), 0, requestMsg.Length); // receive answer recvByte = ns.Read(buff, 0, buff.Length); receiveMsg = Encoding.ASCII.GetString(buff, 0, recvByte); System.Console.WriteLine("Area of this triangle : " + receiveMsg); // Send Name1 requestMsg = "Mr.Chatchai Tubgrit 5117660042"; ns.Write(Encoding.ASCII.GetBytes(requestMsg), 0, requestMsg.Length); System.Console.WriteLine("Send Name1 : {0} ",requestMsg); // Send Name2 requestMsg = "Mr.Utain Jantawong 5117660049"; ns.Write(Encoding.ASCII.GetBytes(requestMsg), 0, requestMsg.Length); System.Console.WriteLine("Send Name2 : {0} ", requestMsg); timeClient.Close(); System.Console.ReadLine(); } } }
using System; using System.Collections.Generic; using System.Text; using System.Net; using System.Net.Sockets; namespace Server
Server
{ class Program {
static void Main(string[] args) {
IPEndPoint localEP = new IPEndPoint(IPAddress.Any, 9000); TcpListener timeServer = new TcpListener(localEP); timeServer.Start(); System.Console.WriteLine("Time Server Started...."); TcpClient timeClient = timeServer.AcceptTcpClient(); IPEndPoint clientEP = (IPEndPoint)timeClient.Client.RemoteEndPoint; NetworkStream ns = timeClient.GetStream(); byte[] buff = new byte[1024]; int recvByte = 0; string receiveMsg = ""; string requestMsg = ""; // Send HELLO requestMsg = "HELLO"; ns.Write(Encoding.ASCII.GetBytes(requestMsg), 0, requestMsg.Length); // wait Receive form client recvByte = ns.Read(buff, 0, buff.Length); receiveMsg = Encoding.ASCII.GetString(buff, 0, recvByte); System.Console.WriteLine(receiveMsg); // Send Enter Width requestMsg = "Enter width : "; ns.Write(Encoding.ASCII.GetBytes(requestMsg), 0, requestMsg.Length); // Receive widht form client recvByte = ns.Read(buff, 0, buff.Length); receiveMsg = Encoding.ASCII.GetString(buff, 0, recvByte); int width = int.Parse(receiveMsg); System.Console.WriteLine("Width : " + width); // Send Enter Hight requestMsg = "Enter hight : "; ns.Write(Encoding.ASCII.GetBytes(requestMsg), 0, requestMsg.Length); // Receive Hight form client recvByte = ns.Read(buff, 0, buff.Length); receiveMsg = Encoding.ASCII.GetString(buff, 0, recvByte); int hight = int.Parse(receiveMsg); System.Console.WriteLine("Hight : " + hight); double answer = 0.5 * width * hight; System.Console.WriteLine("Area of this triangle : " + answer); // Send answer ns.Write(Encoding.ASCII.GetBytes(answer.ToString()), 0, (answer.ToString()).Length); // Receive Name1 recvByte = ns.Read(buff, 0, buff.Length); receiveMsg = Encoding.ASCII.GetString(buff, 0, recvByte); System.Console.WriteLine(receiveMsg); // Receive Name2 recvByte = ns.Read(buff, 0, buff.Length); receiveMsg = Encoding.ASCII.GetString(buff, 0, recvByte); System.Console.WriteLine(receiveMsg); timeServer.Stop(); System.Console.ReadLine(); } } }