학교 프로젝트를위한 서버/클라이언트 응용 프로그램을 만들려고합니다.사용자가있는 경우 소켓 닫기
나는 주어진 포트에 서버가 있고, 여러 사용자가 연결되어 있으며 각 사용자마다 고유 한 사용자 이름이 있습니다.
이제 연결하려는 사용자가 유효한 사용자 이름을 사용하고 있는지 확인하고 싶습니다. 예를 들어 사용자 이름이 A 인 사용자가 이미 연결되어있는 경우 연결하려는 새 사용자는 사용자 이름 A를 사용할 수 없습니다.
이 경우 서버는 새 클라이언트에 오류 코드로 응답합니다. 나는이 프로그램 crashs을하려고 비주얼 스튜디오 richTextBox1
에 잘못된 크로스 스레드 작업이 있다고 말할 때
private void Receive()
{
while (true)
{
byte[] buffer = new byte[64];
socket.Receive(buffer);
string received = Encoding.Default.GetString(buffer);
if (received.IndexOf("!error") != -1)
{
string[] mySplit = received.Split(':');
string errorCode = mySplit[1].Trim((char)0);
if (errorCode == "user exists")
{
richTextBox1.AppendText("Your connection was refused by server, because there's already another user connected with the username you choose");
socket.Disconnect(true);
connectBtn.Enabled = true;
}
}
}
}
:
이
이 부분에 대한 코드입니다.
그리고 귀하의 질문은 ...? –
"은 새 클라이언트에 오류 코드": 적절한 문제 설명이 아닙니다. "로 응답합니다. * 실제로 * 오류 코드는 잘라 내기 및 붙여 넣기를 사용하여 줄을 표시하는 것이 바람직합니다. – EJP