서버와 데이터를 송수신하는 응용 프로그램을 작성 중입니다. 일부 데이터를 보내기 전에 연결해야하며 사용자가 계속 데이터를 보낼 수 있도록 열어야합니다. 사용자는 연결 해제 버튼을 클릭하여 언제든지 연결을 닫을 수 있습니다. 나는 2 개의 버튼을 만들었습니다. 하나는 연결하고 하나는 연결을 끊으려고했습니다.TcpClient 연결
private void button1_Click(object sender, EventArgs e)
{
if (tcpclnt.Connected)
{
tcpclnt.Client.Disconnect(false);
stm.Close();
}
else
{
MessageBox.Show("Not Connected");
}
}
코드 뒤에 버튼이 다음과 같습니다 연결 : - - : 분리 버튼 뒤에 코드는 다음과 같습니다
public ASCIIEncoding asen = new ASCIIEncoding();
public TcpClient tcpclnt = new TcpClient();
public NetworkStream stm;
private void Connect_Click(object sender, EventArgs e)
{
if (!tcpclnt.Connected)
{
tcpclnt.Connect("XX.XX.XX.XX", 5500);
MessageBox.Show("Connected to server");
stm = tcpclnt.GetStream();
string sysname = "000B0000" + SystemName.Text.ToString();
byte[] sys1 = asen.GetBytes(sysname);
sys1[0] = 0; sys1[1] = 0;
sys1[2] = 0; sys1[3] = 0xB;
sys1[4] = 0; sys1[5] = 0;
sys1[6] = 0; sys1[7] = 0;
try
{
stm.Write(sys1, 0, sys1.Length);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
MessageBox.Show("Error in Sending data");
}
if (stm.DataAvailable)
{
try
{
byte[] bb = new byte[600];
int k = 8;
k = stm.Read(bb, 0, bb.Length);
string value = ASCIIEncoding.ASCII.GetString(bb, 8, k - 8);
MessageBox.Show(value.ToString());
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
MessageBox.Show("Error in Reading data");
}
}
}
else {
MessageBox.Show("Already Connected");
}
}
지금, 나는이 분리 버튼을 클릭하고 다시 연결 버튼을 클릭하면, 그것은 던지고 tcpclient.connect 행에 대한 예외입니다. 왜 또는 어떻게 해결할 수 있는지 이해할 수 없습니다.
어떤 종류의 예외적 인 문제에 대해 언급 할 수 있습니까? – ZafarYousafi