다음 코드를 작성하여 사용자로부터 암호화 된 문자열을 얻었습니다. 스레드를 사용해야합니다.tcplistener를 사용하는 멀티 스레딩
TcpListener TCPListen = new TcpListener(IP2, port);
TCPListen.Start();
TcpClient TCP = TCPListen.AcceptTcpClient();
NetworkStream NetStream = TCP.GetStream();
RijndaelManaged RMCrypto = new RijndaelManaged();
byte[] Key = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16 };
byte[] IV = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16 };
CryptoStream CryptStream = new CryptoStream(NetStream,
RMCrypto.CreateDecryptor(Key, IV),
CryptoStreamMode.Read);
StreamReader SReader = new StreamReader(CryptStream);
문제는 내가 TCPListen.Start(); 그렇지 않으면 오류가 발생합니다 ** (각 소켓 주소 (프로토콜/네트워크 주소/포트)의 한 가지 용도 만 정상적으로 허용됩니다) ** 이 문제를 어떻게 해결할 수 있습니까?
그래서 클라이언트 연결을 수락하고 다른 스레드로 주 클라이언트가 다른 클라이언트를 받아들이도록 허용하는 TcpClient 작업을 옮기고 싶다고 생각합니다. 그게 맞습니까? –
바로 !!!!!!!! – Mohammad
이것은 MSDN에서 잘 설명되어 있습니다. 거기를보고 싶을 수도 있습니다. 이 질문 (http://stackoverflow.com/questions/706117/socket-programming/706154#706154)도 매우 비슷합니다. –