⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 socketclient.cs

📁 C# socket 通信实例 客户端服务器socket通信信息代码
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Sockets;
using System.IO;
using System.Net;
using System.Windows.Forms;
using System.Threading;

namespace SocketClient

{
    public class Client: IClient
    {
        private IPAddress serverIP = IPAddress.Parse("127.0.0.1");
        private IPEndPoint serverFullAddr;
        private Socket socket;
        private NetworkStream ns ;
        private StreamReader sr ;
        private StreamWriter sw ;
        private string _receiveMsg;
        public  Client()
        {
            serverFullAddr = new IPEndPoint(serverIP, 1001);
            socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            try
            {
                socket.Connect(serverFullAddr);
                ns = new NetworkStream(socket);
                MessageBox.Show("成功连接服务器!");
                Thread t = new Thread(new ThreadStart(receiveMsg));
                t.Name = "Receive Message";
                //一个线程或者是后台线程或者是前台线程。后台线程与前台线程类似,区别是后台线//程不会防止进程终止。一旦属于某一进程的所有前台线程都终止,公共语言运行库就//会通过对任何仍然处于活动状态的后台线程调用 Abort 来结束该进程。
                t.IsBackground = true;
                t.Start();

            }
            catch (SocketException e)
            {
                MessageBox.Show("无法连接服务器!"+e.Message);
                return;
            }
            
        }

        public void receiveMsg()
        {
            try
            {
                while (true)
                {
                    sr = new StreamReader(ns);
                    _receiveMsg = sr.ReadLine();

                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Receive Message Error" + ex.Message);
            }

        }
        public string ReceiceMsg
        {
            get
            {
                return _receiveMsg;
            }
            set
            { 
            _receiveMsg = value; 
            }
           
        }
        #region IClient 成员

        public string receiveMessage() { return ""; }
        
        public void sendMessage(String message)
        {
            
            string input;
            if (socket.Connected)
            {
                sw = new StreamWriter(ns);
                input = message;
                sw.WriteLine(input);
                sw.Flush();
            }
            else 
            {
                MessageBox.Show("请先连接服务器!");
            }
           
        }

        #endregion
        private void close()
        {
            sr.Close();
            sw.Close();
            ns.Close();
            socket.Shutdown(SocketShutdown.Both);
            socket.Close();
            MessageBox.Show("disconnect from server");
        }
     
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -