32、Socket,TCP客戶端、服務端簡單聊天室

1. 服務端代碼

 // 1. 新建一個Socket 服務器端 連接對象
            // 參數 尋址范圍,數據類型,協議格式
            Socket tcpServer = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            byte[] ip = { 192, 168, 199, 117 };
            IPAddress address = new IPAddress(ip);
            IPEndPoint point = new IPEndPoint(address, 8090);
            tcpServer.Bind(point); // 2. 綁定Ip和端口號
            tcpServer.Listen(100); // 3. 設置監聽連接的最大請求數
            Socket newSocket = tcpServer.Accept(); // 4. 等待客戶端的連接,會阻塞當前線程,直到接收到客戶端的連接

            string sendMessage = "Hello Welcome Connect";
            newSocket.Send(Encoding.UTF8.GetBytes(sendMessage)); // 5.向客戶端發送一條消息

            byte[] data = new byte[1024];
            int length = newSocket.Receive(data);
            Console.WriteLine("接收到客戶端的數據"+Encoding.UTF8.GetString(data, 0, length));
            Console.ReadKey();

2. 客戶端代碼

//1. 建立客戶端連接對象 
            // 參數 尋址范圍,數據類型,協議格式
            Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            // 2. 建立一個連接,請求連接到服務器
            clientSocket.Connect(new IPEndPoint(new IPAddress(new byte[] { 192, 168, 199, 117 }), 8090));

            // 建立一個用來接受數據的容器
            byte[] data = new byte[1024];
            // 3. 接受服務端發送的數據
            int length = clientSocket.Receive(data); // 該數組用來接受數組,接受服務端傳遞的數據 , 返回值,用來表示本次接收到的數據長度
            // 4. 將服務器端發送過來的數據轉換成字符串
            string reciveMessage = Encoding.UTF8.GetString(data, 0, length);
            Console.WriteLine(reciveMessage);

            string message = Console.ReadLine();
            clientSocket.Send(Encoding.UTF8.GetBytes(message));

            Console.ReadKey();
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容