(3)Tcp Socket程式設計的封裝類 TcpListener/TcpClient

Unity李大饞師發表於2020-09-29

(一)伺服器

在這裡插入圖片描述

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net.Sockets;
using System.Net;

namespace Server
{
    class Program
    {
        /*   1、把Socket伺服器程式設計的“建立Socket”、“繫結IP和Port”兩步,封裝成了建立TcpListener一步
         * 
         *   2、還是接收客戶端的位元組陣列,不過換成了NetworkStream物件的Read方法 
         */
        static void Main(string[] args)
        {
            //1.
            TcpListener listener = new TcpListener(IPAddress.Parse("192.168.1.113"), 7788);
            listener.Start();
            //2.
            TcpClient client = listener.AcceptTcpClient();
            NetworkStream stream = client.GetStream();
            byte[] data = new byte[1024];
            int length = stream.Read(data, 0, 1024);
            string message = Encoding.UTF8.GetString(data, 0, length);
            Console.WriteLine(message);


            stream.Close();
            client.Close();
            listener.Stop();

            Console.ReadLine();



        }
    }
}

(二)客戶端

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.Net.Sockets;

namespace Client
{
    class Program
    {
        static void Main(string[] args)
        {
            TcpClient client = new TcpClient("192.168.1.113", 7788);//注意此處不必強轉成IPAddress

            NetworkStream stream = client.GetStream();
            string msg_Send = "我是其中一個客戶端";
            byte[] data = Encoding.UTF8.GetBytes(msg_Send);
            stream.Write(data, 0, data.Length);

            stream.Close();
            client.Close();

            Console.ReadLine();
        }
    }
}

相關文章