• 大小: 42.45 KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-11-15
  • 语言: C#
  • 标签: C#  窗体  聊天程序  

资源简介

C#简单窗体聊天程序,主要是练习一下C#封装的TcpListener、TcpClient以及NetworkStream的使用

资源截图

代码片段和文件信息

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.IO;


namespace ChatTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private NetworkStream networkStream;
        private StreamReader streamReader;
        private StreamWriter streamWriter;
        private TcpClient myclient;
        private Thread recvThread;   // 接收信息线程
        private Thread sendThread;   // 发送信息线程
        private Thread serverThread;// 服务线程


        //[STAThread]

        private void button1_Click(object sender EventArgs e)
        {
            serverThread = new Thread(new ThreadStart(Connection));
            serverThread.Start();
        }

        private void Connection()
        {
            try
            {
                IPAddress ipAddress = IPAddress.Parse(txtIP.Text);
                Int32 port = Int32.Parse(txtPort.Text);
                string hostName = Dns.GetHostEntry(ipAddress).HostName;
                myclient = new TcpClient(hostName port);
            }
            catch
            {
                MessageBox.Show(“没有连接到服务器!“);
                return;
            }

            listBox1.Items.Add(“客户端成功连接上服务器!“);
            button1.Enabled = false;     // 连接上了,不让按“连接”按钮
            button2.Enabled = true;
            button3.Enabled = true;

            networkStream = myclient.GetStream();
            streamReader = new StreamReader(networkStream);
            streamWriter = new StreamWriter(networkStream);
            // 创建接收信息线程,并启动
            recvThread = new Thread(new ThreadStart(RecvData));
            recvThread.Start();
        }

        // 接收数据
        private void RecvData()
        {
            string s = streamReader.ReadLine();
            // 如果没接到服务器退出的消息,则继续接收信息
            while (!s.Equals(“exit“))
            {
                listBox1.Items.Add(“收到信息:“ + s);
                s = streamReader.ReadLine();
            }
            // 收到服务器退出的消息,释放资源
            listBox1.Items.Add(“服务器关闭“);
            listBox1.Items.Add(“客户端关闭“);
            button1.Enabled = true;
            button2.Enabled = false;
            button3.Enabled = false;

            // streamReader.Close();
            // streamWriter.Close();
            // networkStream.Close();
            // myclient.Close();
            ReleaseResouce();
        }

        private void button2_Click(object sender EventArgs e)
        {
            button1.Enabled = true;  // 按了停止之后,“连接”按钮可以用,“发送”不能用
            button2.Enabled = false;
            button3.Enabled = false;
            string exitMsg = “exit“;  // 要退出时,发送 exit 信息给服务器
            streamWriter.WriteLine(exitMsg);
            //刷新当前数据流中的数据
            s

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      12800  2012-08-13 21:08  ChatTest\ChatTest\bin\Debug\ChatTest.exe

     文件      28160  2012-08-13 21:08  ChatTest\ChatTest\bin\Debug\ChatTest.pdb

     文件      14328  2012-08-13 21:12  ChatTest\ChatTest\bin\Debug\ChatTest.vshost.exe

     文件        490  2007-07-21 02:33  ChatTest\ChatTest\bin\Debug\ChatTest.vshost.exe.manifest

     文件       3762  2012-08-13 20:36  ChatTest\ChatTest\ChatTest.csproj

     文件       6392  2012-08-13 21:08  ChatTest\ChatTest\Form1.cs

     文件       7542  2012-08-13 21:01  ChatTest\ChatTest\Form1.Designer.cs

     文件       5814  2012-08-13 21:01  ChatTest\ChatTest\Form1.resx

     文件        515  2012-08-13 21:12  ChatTest\ChatTest\obj\Debug\ChatTest.csproj.FileListAbsolute.txt

     文件        847  2012-08-13 21:06  ChatTest\ChatTest\obj\Debug\ChatTest.csproj.GenerateResource.Cache

     文件      12800  2012-08-13 21:08  ChatTest\ChatTest\obj\Debug\ChatTest.exe

     文件        180  2012-08-13 21:06  ChatTest\ChatTest\obj\Debug\ChatTest.Form1.resources

     文件      28160  2012-08-13 21:08  ChatTest\ChatTest\obj\Debug\ChatTest.pdb

     文件        180  2012-08-13 20:36  ChatTest\ChatTest\obj\Debug\ChatTest.Properties.Resources.resources

     文件        572  2012-08-13 20:39  ChatTest\ChatTest\Program.cs

     文件       1372  2012-08-13 20:27  ChatTest\ChatTest\Properties\AssemblyInfo.cs

     文件       2866  2012-08-13 20:27  ChatTest\ChatTest\Properties\Resources.Designer.cs

     文件       5612  2012-08-13 20:27  ChatTest\ChatTest\Properties\Resources.resx

     文件       1093  2012-08-13 20:27  ChatTest\ChatTest\Properties\Settings.Designer.cs

     文件        249  2012-08-13 20:27  ChatTest\ChatTest\Properties\Settings.settings

     文件        914  2012-08-13 20:27  ChatTest\ChatTest.sln

    ..A..H.     13824  2012-08-13 21:12  ChatTest\ChatTest.suo

     目录          0  2012-08-13 20:30  ChatTest\ChatTest\obj\Debug\Refactor

     目录          0  2012-08-13 20:27  ChatTest\ChatTest\obj\Debug\TempPE

     目录          0  2012-08-13 20:36  ChatTest\ChatTest\bin\Debug

     目录          0  2012-08-13 21:08  ChatTest\ChatTest\obj\Debug

     目录          0  2012-08-13 20:27  ChatTest\ChatTest\bin

     目录          0  2012-08-13 20:27  ChatTest\ChatTest\obj

     目录          0  2012-08-13 20:27  ChatTest\ChatTest\Properties

     目录          0  2012-08-13 21:08  ChatTest\ChatTest

............此处省略4个文件信息

评论

共有 条评论