Chào, Khách!
  1. HoVn_CNTT
    Offline
    HoVn_CNTT   [64/71]
    Mình không thấy ai post socket nên minh xin phep post mot bài
    :001:
    Phần SERVER:
    Mã:
    //Chuong trinh Server:
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Net;
    using System.Net.Sockets;
    class Seryer
    {
        static void Main(string[] args)
        {
            IPEndPoint iep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 2008);
            Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            server.Bind(iep);
            server.Listen(10);
            Console.WriteLine("Cho ket noi tu client");
            Socket client = server.Accept();
            Console.WriteLine("Chap nhan ket noi tu:{0}", client.RemoteEndPoint.ToString());
            string s = "CMung DVoi Server, Upper, Tinh Tong voi CP: T X Y, T.DO X la ST1, Y ST2";
            //Chuyen chuoi s thanh mang byte 
            byte[] data = new byte[1024];
            data = Encoding.ASCII.GetBytes(s);
            //gui nhan du lieu theo giao thuc da thiet ke 
            client.Send(data, data.Length, SocketFlags.None);
            while (true)
            {
                data = new byte[1024];
                int recv = client.Receive(data);
                if (recv == 0) break;
                //Chuyen mang byte Data thanh chuoi va in ra man hinh
                s = Encoding.ASCII.GetString(data, 0, recv);
                //Bat dau tinh Tong, Xem Cu Phap Nhap Tren
                string[] ma = new string[5];
                int t=0;
                for (int i = 0; i < 5; i++)
                {
                    ma = s.Split(' ');
                }
                try//xu li ngoai le
                {
                    if (ma[0] == "T")
                    {
                        t = Convert.ToInt32(ma[1]) + Convert.ToInt32(ma[2]);
                    }
                }
                catch { 
                    string gcl="Ban Da Nhap Sai Cu Phap, Enter De Ket Thuc CT";
                    data = Encoding.ASCII.GetBytes(gcl);
                    client.Send(data, data.Length, SocketFlags.None);
                    s="QUIT";
                    data = Encoding.ASCII.GetBytes(s);
                    client.Send(data, data.Length, SocketFlags.None);
                }
                Console.WriteLine(t.ToString());
                    Console.WriteLine("Clien gui len:{0}", s);
                //Neu chuoi nhan duoc la Quit thi thoat
                if (s.ToUpper().Equals("QUIT")) break;
                //Gui tra lai cho client chuoi s
                s = s.ToUpper();
                data = new byte[1024];
                //Tai day dung if de lua chon upper hay tinh tong
                if (ma[0] == "T")
                {
                    data = Encoding.ASCII.GetBytes(t.ToString());
                }
                else {
                    data = Encoding.ASCII.GetBytes(s);
                }
                client.Send(data, data.Length, SocketFlags.None);
            }
            client.Shutdown(SocketShutdown.Both);
            client.Close();
            server.Close();
        }
    }
    
    

    Phần Client:


    Mã:
    //Chuong trinh Client:
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Net;
    using System.Net.Sockets;
    class Client
    {
        static void Main(string[] args)
        {
            IPEndPoint iep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 2008);
            Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            client.Connect(iep);
            byte[] data = new byte[1024];
            int recv = client.Receive(data);
            string s = Encoding.ASCII.GetString(data, 0, recv);
            Console.WriteLine("Server gui:{0}", s);
            string input;
            while (true)
            {
                input = Console.ReadLine();
                //Chuyen input thanh mang byte gui len cho server 
                data = new byte[1024];
                data = Encoding.ASCII.GetBytes(input);
                client.Send(data, data.Length, SocketFlags.None);
                if (input.ToUpper().Equals("QUIT")) break;
                data = new byte[1024];
                recv = client.Receive(data);
                s = Encoding.ASCII.GetString(data, 0, recv); 
                Console.WriteLine("Server gui:{0}", s);
                if (s == "QUIT") break;
            }
            client.Disconnect(true);
            client.Close();
        }
    }
    
    
    Mọi người có thể tham khảo và góp ý.
    MÌnh vẫn còn một số vấn đề vẫn chưa xử lí hết.
    Mọi ngừoi góp ý.:029:
    DualCore, cuibapvn, AmGian3 người khác thích bài này.
  2. lavender08_12
    Offline
    lavender08_12   [12/5]
    cam on ban nhiu!!!!!!!
    TruTra thích bài này.
  3. Ronaldo
    Offline
    Ronaldo   [1.313/321]
    Cùng nhau học để mai thi tốt nào
    UP nào !
  4. sunboy
    Offline
    sunboy   [1.616/1.340]
    Nhất trí... ai có bài nào up lên bài đó..
  5. minhtam
    Offline
    minhtam   [460/177]
    đa tạ, đa tạ :congratulate::congratulate: có bài tập bên thao tác file không. :001:
  6. Ronaldo
    Offline
    Ronaldo   [1.313/321]
    cú pháp nhập không hiểu lắm :ThumbsUp:
  7. Ronaldo
    Offline
    Ronaldo   [1.313/321]
    Mã:
    string s = "CMung DVoi Server, Upper, Tinh Tong voi CP: T X Y, T.DO X la ST1, Y ST2";
    
    Cái này vd như: T 34 14
    là tính tổng của 34 và 14 hehe@@
  8. cuibapvn
    Offline
    cuibapvn   [32/25]
    cảm ơn chú nhiều . hehe ngày mai thi tốt