TCP 서버를 이용하여 다중 클라이언트의 오디오 데이터를 수신하고 Naudio를 통해 재생 및 오디오 처리(一) TCP 서버

14094 단어 c#

tcp 서버 만들기


1. 서비스 오픈
//  , ;
            Socket Listensocket= new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            //  IP ;
            IPAddress address = IPAddress.Parse("127.0.0.1");
            //  ip ;
            IPEndPoint endPoint = new IPEndPoint(address, int.Parse("8000"));
            //  ip ;
            Listensocket.Bind(endPoint);
            //  ;
            Listensocket.Listen(200);

            //  ;
            Thread threadWatch = new Thread(ListenConnecting);
            // 
            Thread threadWatch.IsBackground = true;
            // 
            Thread threadWatch.Start();

2. 감청 스레드 /// /// /// public static Socket[] Clientsocket = new Socket[200]; public static void ListenConnecting() { // ; while (true) { // , , Socket sokConnection = Listensocket.Accept(); // for(int i=0;i<Clientsocket.length;i++){ if(Clientsocket[i]==null){ Clientsocket[i]=sokConnection; break; } } // Thread thread = new Thread(RecMsg); thread.IsBackground = true; // Socket thread.Start(sokConnection); } }
3. 수신 데이터 스레드/// /// /// /// public static void RecMsg(object sokConnectionparn) { // Socket Socket sokClient = sokConnectionparn; // byte[] arrMsgRec = new byte[128]; while (true) { try { // int lengths = sokClient.Receive(arrMsgRec); } catch (SocketException ex) { // break; } if(lengths>0){ // } \ else { // } } }
4. 데이터 전송/// /// /// /// /// /// public static bool SendData(string strMsg, Socket socket) { // Utf-8 ; byte[] arrMsg = System.Text.Encoding.UTF8.GetBytes(strMsg); try { socket.Send(arrMsg); return true; } catch (Exception see) { return false; } }
5. TCP 서비스 종료/// /// TCP /// /// public static void CloseTCPserver(Socket sokClient) { sokClient.Shutdown(SocketShutdown.Both); sokClient.Close(); }

좋은 웹페이지 즐겨찾기