안녕하세요


C#으로 비동기소캣서버 만들고 있어요.. indata라는 곳에 mcu에서 1초마다 데이터를 받아오고 이걸 서버로 전송하는거 만들려고 합니다..



SerialPort sp = (SerialPort)sender;

                indata = sp.ReadExisting();


오롷게 받고 있구요


클라이언트 코드

IPAddress ipaddress = IPAddress.Parse(textBox3.Text);//텍스트박스의 값을 읽어서 ip로 사용

            IPEndPoint endPoint = new IPEndPoint(ipaddress, int.Parse(textBox4.Text));//연결할 아이피와 포트 설정


            //소캣 생성

            socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);


            //연결

            socket.Connect(endPoint);


           




            //데이터 전송 

            

            sendThread = new Thread(new ThreadStart(Send));


            sendThread.IsBackground = true;


            receiveThread.Start();

            

            

                        //



            //Recive 스레드 처리(서버<->클라이언트)

            receiveThread = new Thread(new ThreadStart(Receive));


            receiveThread.IsBackground = true;


            receiveThread.Start();

        }

        

        private void Send()

        {

            while (true)


            {


                byte[] sendBuffer = Encoding.UTF8.GetBytes(indata.Trim());


                socket.Send(sendBuffer);



            }

        }

        


        private void Receive()

        {

            while (true)


            {

                byte[] sendBuffer = Encoding.UTF8.GetBytes(indata.Trim());


                socket.Send(sendBuffer);


                //연결된 서버가 보낸 데이터 수신


                byte[] recevieBuffer = new byte[512];


                int length = socket.Receive(recevieBuffer, recevieBuffer.Length, SocketFlags.None);


                string msg = Encoding.UTF8.GetString(recevieBuffer, 0, length);



            }


이렇게 송수신 할 수 있는걸 만들었어요



서버측은


 private void Receive()


        {


            while (true)


            {


                //연결된 클라이언트가 보낸 데이터 수신


                byte[] receiveBuffer = new byte[512];


                int length = clientSocket.Receive(


                receiveBuffer, receiveBuffer.Length, SocketFlags.None);


                //디코딩

                string msg = Encoding.UTF8.GetString(receiveBuffer);


이렇게 리시버를 만들고 쓰레드를 돌립니다.


클라이언트에는 데이터가 1.2.3.4씩 제대로 들어오는데 서버에는 1 하나만 뜨고 이상 안받아집니다..


혹시 어떻게 해야하나요?