Socket通信

客户端:

IPAddress conServiceIp = IPAddress.Parse("172.19.82.121");//服务端IP
                            int conServicePort = int.Parse("1408");//服务端端口
                            IPEndPoint ipEndPoint = new IPEndPoint(conServiceIp,conServicePort);
                            Socket conServiceSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
                            conServiceSocket.Connect(ipEndPoint);
                            
                            string time = DateTime.Now.ToLocalTime().ToString("t")+",";//时分秒
                            string content = time+"tixing.....";
                            //发送消息
                            byte[] byteSend = Encoding.UTF8.GetBytes(content);
                            conServiceSocket.Send(byteSend);
                            //接收服务端返回消息
                            byte[] byteReceive = new byte[1024];
                            int bytes = conServiceSocket.Receive(byteReceive,byteReceive.Length,0);
                            string message = Encoding.UTF8.GetString(byteReceive, 0, bytes);

                            conServiceSocket.Close();

服务端:

        {
                WindowStartupLocation = WindowStartupLocation.CenterScreen;
                serviceSocketListener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                serviceSocketListener.Bind(new IPEndPoint(IPAddress.Parse(ListenerIp), Convert.ToInt32(ListenerPort))); //本机IP和端口应该是可配置
                serviceSocketListener.Listen(1024);
                handleSocket = new Thread(new ThreadStart(HandleSocket));
                handleSocket.Start();
            }

        /// <summary>
        /// 监听链接
        /// </summary>
        private void HandleSocket()
        {
            while (true)
            {
                try
                {
                    Socket currSocket = serviceSocketListener.Accept();  //为新建连接创建新的 System.Net.Sockets.Socket
                    Thread processThread = new Thread(new ParameterizedThreadStart(ProcessSocket));
                    processThread.Start(currSocket);        
                  
                   
                }
                catch { }
            }
        }

        private void ProcessSocket(object obj)
        {

            try
            {
                Socket currSocket = (Socket)obj;
                int recbytes;
                recbytes = currSocket.Receive(recvBytes, recvBytes.Length, 0);
                if (recbytes > 0) {
                   contentStr = Encoding.UTF8.GetString(recvBytes, 0, recbytes).ToString();
                   //new Thread(new ThreadStart(GetColledInfo)).Start();
                  //缺少send消息
                }

            }
            catch (Exception ex)
            {
                Logger.D("Conferenceserver", "写Error日志" + ex.Message);
            }
        }

 链接:https://www.cnblogs.com/ysyn/p/3399351.html

原文地址:https://www.cnblogs.com/lijianda/p/8559269.html