private void Button_Confirm_Click(object sender, EventArgs e) { SslTcpClient.RunClient("15.164.170.79", "DESKTOP-NHIE464\\kkh", textBox1.Text, textBox2.Text, requestvalue); //접속 서버 IP, 인증서 유효성 검사를 위한 인증서의 발급자 정보, 서버로 전송할 ID값, PWS값, 서버에서 로그인 여부를 저장할 bool변수 if (SslTcpClient.IsSuccess) { vipdata = SslTcpClient.buf; UpdatePolicy(); id = textBox1.Text; password = textBox2.Text; string strLog; strLog = id + "α" + NetworkInterface.GetAllNetworkInterfaces()[0].GetPhysicalAddress().ToString() + "α" + "1" + "α" + Get_MyIP(); SslTcpClient.logWrite(strLog); this.Close(); } }
public static void RunClient(string machineName, string serverName, string inputID, string inputPWS, bool requestvalue1) { // Create a TCP/IP client socket. // machineName is the host running the server application. client = new TcpClient(machineName, 9000);//ip와 포트를 입력하여 클라이언트 동작 //Console.WriteLine("Client connected."); // Create an SSL stream that will close the client's stream. sslStream = new SslStream(//SSLStream 을 통해서 GetStream()함수 동작 client.GetStream(), false, new RemoteCertificateValidationCallback(ValidateServerCertificate), null ); // The server name must match the name on the server certificate. try { sslStream.AuthenticateAsClient(serverName); } catch (AuthenticationException e) { //MessageBox.Show("Exception: {0}", e.Message); if (e.InnerException != null) { //MessageBox.Show("Inner exception: {0}", e.InnerException.Message); } client.Close(); return; } // Encode a test message into a byte array. // Signal the end of the message using the "<EOF>". //메세지 전송 파트****************************************************************** byte[] message = Encoding.UTF8.GetBytes(inputID + "αα" + inputPWS + "ΩΩ"); // Send hello message to the server. sslStream.Write(message); sslStream.Flush(); //데이터 전송을 위해 바이트 배열에 저장 여기서는 문자열 이므로 문자 인코딩방식과 보내려는 문자 + 구분자 %%는 문자와 문자의 구분자 //$$는 문자의 끝을 나타냄 //메세지 전송 파트******************************************************************* // Read message from the server. //메세지 수신 파트************************************************************************* string serverMessage = ReadMessage(sslStream); //ReadMessage 를 통하여 서버에서 전송해준 메세지를 변수에 저장하고 아래에서 로그인 여부를 체크 //ReadMessage함수는 바이트 단위의 데이터를 받아 UTF8인코딩으로 저장한 후 Tostring으로 리턴하므로 최종적으로 string으로 저장 가능 //MessageBox.Show(serverMessage); if (serverMessage.Equals("aΩ"))//실험을 위해 잠시 b$로 해놈 원래 a가 성공기고 나머지 모든 문자가 실패 { MessageBox.Show("로그인 성공"); //MessageBox.Show(serverMessage); //키받는곧에서 뭔가 문제가 생기고있음 이부분을 규진이랑 확인해야할듯 string ReadBuffer; ReadBuffer = ReadMessage(sslStream); IsSuccess = true; //MessageBox.Show(ReadBuffer); buf = new USER_STAT(ReadBuffer); } else { //MessageBox.Show(serverMessage); MessageBox.Show("로그인 실패"); IsSuccess = false; } //메세지 수신 파트************************************************************************* // Close the client connection. client.Close(); return; }