Upper và tính tổng[ôn thi socket]

Thảo luận trong 'C#' bắt đầu bởi HoVn_CNTT, 23 Tháng mười hai 2010.

  1. Offline

    HoVn_CNTT

    • Thành Viên Mới

    Số bài viết:
    64
    Đã được thích:
    71
    Điểm thành tích:
    0
    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. Offline

    lavender08_12

    • Thành Viên Mới

    Số bài viết:
    12
    Đã được thích:
    5
    Điểm thành tích:
    0
    cam on ban nhiu!!!!!!!
    TruTra thích bài này.
  3. Offline

    Ronaldo

    • Friends

    Số bài viết:
    1.313
    Đã được thích:
    321
    Điểm thành tích:
    220
    Cùng nhau học để mai thi tốt nào
    UP nào !
  4. Offline

    sunboy

    • Thành viên sáng lập

    • No thing
    Số bài viết:
    1.616
    Đã được thích:
    1.340
    Điểm thành tích:
    1.000
    Nhất trí... ai có bài nào up lên bài đó..
  5. Offline

    minhtam

    • Windows 98

    Số bài viết:
    460
    Đã được thích:
    177
    Điểm thành tích:
    140
    đa tạ, đa tạ :congratulate::congratulate: có bài tập bên thao tác file không. :001:
  6. Offline

    Ronaldo

    • Friends

    Số bài viết:
    1.313
    Đã được thích:
    321
    Điểm thành tích:
    220
    cú pháp nhập không hiểu lắm :ThumbsUp:
  7. Offline

    Ronaldo

    • Friends

    Số bài viết:
    1.313
    Đã được thích:
    321
    Điểm thành tích:
    220
    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. Offline

    cuibapvn

    • Windows 2.0

    Số bài viết:
    32
    Đã được thích:
    25
    Điểm thành tích:
    20
    cảm ơn chú nhiều . hehe ngày mai thi tốt

Chia sẻ trang này

Advertising: Linux system admin | nukeviet | nukeviet 4 | Upload ảnh miễn phí