TcpClient tcpClient = new TcpClient();
tcpClient.Connect(IPAddress.Parse(textBox1.Text), Int32.Parse(textBox2.Text));NetworkStream ns = tcpClient.GetStream();
Byte[] sendBytes = Encoding.UTF8.GetBytes(textBox3.Text);
ns.Write(sendBytes, 0, sendBytes.Length);
richTextBox1.AppendText(DateTime.Now.ToString() + "-发送成功");
ns.Close();
tcpClient.Close();这是我TCP客户端的主要代码,不明白的是,如果每次都tcpClient.Close();的话,那么每发送一次数据岂不是都一创建一个连接,发送完了再断开吗?
tcpClient.Connect(IPAddress.Parse(textBox1.Text), Int32.Parse(textBox2.Text));NetworkStream ns = tcpClient.GetStream();
Byte[] sendBytes = Encoding.UTF8.GetBytes(textBox3.Text);
ns.Write(sendBytes, 0, sendBytes.Length);
richTextBox1.AppendText(DateTime.Now.ToString() + "-发送成功");
ns.Close();
tcpClient.Close();这是我TCP客户端的主要代码,不明白的是,如果每次都tcpClient.Close();的话,那么每发送一次数据岂不是都一创建一个连接,发送完了再断开吗?
主要代码如下: private void frmMain_Load(object sender, EventArgs e)
{
Thread thread = new Thread(Listen);
thread.Start();
WriteLog("线程启动成功!");
}
Dictionary<string, TcpClient> socketList = new Dictionary<string, TcpClient>();
private void Listen()
{
IPAddress ipAddress = IPAddress.Any; TcpListener tcpListener = new TcpListener(ipAddress, 8899);
tcpListener.Start(); while (true)
{
TcpClient tcpClient = tcpListener.AcceptTcpClient(); socketList.Add(DateTime.Now.ToString(), tcpClient); Thread thread = new Thread(checkMess);
thread.Start(tcpClient); }
} private void checkMess(object obj)
{
TcpClient tcpClient = obj as TcpClient;
if (tcpClient.Connected)
{
NetworkStream ns = tcpClient.GetStream();
StreamReader sr = new StreamReader(ns);
string result = sr.ReadToEnd();
WriteLog(result);
}
}
你可以换用sr.ReadLine()看看。