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();
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C#Task를 사용하여 비동기식 작업을 수행하는 방법라인이 완성된 후에 이 라인을 다시 시작할 수 없습니다.반대로 조인(Join)만 결합할 수 있습니다 (프로세스가 현재 라인을 막습니다). 임무는 조합할 수 있는 것이다. 연장을 사용하여 그것들을 한데 연결시키는 것이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.