• 大小: 89KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-10
  • 语言: C#
  • 标签: c#  聊天  

资源简介

一个服务器 和可运行多个客户端 学习专用 利用同步TCP和BinaryReader对象及BinaryWriter对象编写一个基于Windows窗体的同步TCP网络聊天程序,实现如下功能: ① 任何一个客户均可以与服务器进行通信。 ② 服务器要能显示客户端连接的状态,当客户端连接成功后,要及时告诉客户端已经连接成功的信息,并将当前在线的所有客户告知该客户端。 ③ 客户和服务器建立连接后,既可以通过服务器和任何一个在线的其他客户聊天。 ④ 不论客户何时退出程序,服务器都应做出正确判断,同时将该客户是否在线的情况告诉其他所有在线客户。

资源截图

代码片段和文件信息

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

namespace Client
{
    public partial class Form1 : Form
    {
        String username = null;

        private bool isExit = false;
        private TcpClient client;
        private BinaryReader br;
        private BinaryWriter bw;

        public Form1()
        {
            InitializeComponent();
            groupBox1.Visible = true;
            groupBox2.Visible = false;
            
        }

        private void button1_Click_1(object sender EventArgs e)
        {
            MessageBox.Show(“登陆成功!“ “登陆“MessageBoxButtons.OK MessageBoxIcon.Asterisk);
            //textBox1.Text = username;
            username = string.Format(textBox1.Text);
            groupBox1.Visible = false;
            groupBox2.Visible = true;

            try
            {
                client = new TcpClient(Dns.GetHostName() 51888);
                AddTalkMessage(“连接成功“);
            }
            catch
            {
                AddTalkMessage(“连接失败“);
                return;
            }
            NetworkStream networkStream = client.GetStream();
            br = new BinaryReader(networkStream);
            bw = new BinaryWriter(networkStream);
            SendMessage(“Login“ + username);
            Thread threadReceive = new Thread(new ThreadStart(ReceiveData));
            threadReceive.IsBackground = true;
            threadReceive.Start();
        }

        private void ReceiveData()
        {
            string receiveString = null;
            while (isExit == false)
            {
                try
                {
                    receiveString = br.ReadString();
                }
                catch
                {
                    if (isExit == false)
                    {
                        MessageBox.Show(“与服务器失去联系。“);
                    }
                    break;
                }
                string[] splitString = receiveString.Split(‘‘);
                string command = splitString[0].ToLower();
                switch (command)
                {
                    case “login“:  
                        AddOnline(splitString[1]);
                        break;
                    case “logout“: 
                        RemoveUserName(splitString[1]);
                        break;
                    case “talk“:  
                        AddTalkMessage(string.Format(“[{0}]说:{1}“
                            splitString[1] receiveString.Substring(
                            splitString[0].Length + splitString[1].Length + 2)));
                        break;
                    default:
                        AddTalkMessage(“什么意思啊:“ + receiveString

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

     文件      14336  2014-11-09 20:11  Server\Server\bin\Debug\Server.exe

     文件      28160  2014-11-09 20:11  Server\Server\bin\Debug\Server.pdb

     文件      14328  2014-11-09 20:55  Server\Server\bin\Debug\Server.vshost.exe

     文件        490  2009-06-11 05:14  Server\Server\bin\Debug\Server.vshost.exe.manifest

     文件       8834  2014-11-09 20:11  Server\Server\Form1.cs

     文件       4486  2014-11-09 20:09  Server\Server\Form1.Designer.cs

     文件       5814  2014-11-09 20:09  Server\Server\Form1.resx

     文件        891  2014-11-09 21:01  Server\Server\obj\Debug\Server.csproj.FileListAbsolute.txt

     文件        847  2014-11-09 20:09  Server\Server\obj\Debug\Server.csproj.GenerateResource.Cache

     文件      14336  2014-11-09 20:11  Server\Server\obj\Debug\Server.exe

     文件        180  2014-11-09 20:09  Server\Server\obj\Debug\Server.Form1.resources

     文件      28160  2014-11-09 20:11  Server\Server\obj\Debug\Server.pdb

     文件        180  2014-11-04 21:08  Server\Server\obj\Debug\Server.Properties.Resources.resources

     文件        487  2014-11-04 20:20  Server\Server\Program.cs

     文件       1362  2014-11-04 20:20  Server\Server\Properties\AssemblyInfo.cs

     文件       2862  2014-11-04 20:20  Server\Server\Properties\Resources.Designer.cs

     文件       5612  2014-11-04 20:20  Server\Server\Properties\Resources.resx

     文件       1091  2014-11-04 20:20  Server\Server\Properties\Settings.Designer.cs

     文件        249  2014-11-04 20:20  Server\Server\Properties\Settings.settings

     文件       3758  2014-11-04 21:08  Server\Server\Server.csproj

     文件        908  2014-11-04 20:20  Server\Server.sln

    ..A..H.     15360  2014-11-09 21:10  Server\Server.suo

     文件      13824  2014-11-09 21:01  Client\Client\bin\Debug\Client.exe

     文件      24064  2014-11-09 21:01  Client\Client\bin\Debug\Client.pdb

     文件      14328  2014-11-09 21:01  Client\Client\bin\Debug\Client.vshost.exe

     文件        490  2009-06-11 05:14  Client\Client\bin\Debug\Client.vshost.exe.manifest

     文件       3758  2014-11-09 12:00  Client\Client\Client.csproj

     文件       5918  2014-11-09 21:07  Client\Client\Form1.cs

     文件       8495  2014-11-09 21:01  Client\Client\Form1.Designer.cs

     文件       5814  2014-11-09 21:01  Client\Client\Form1.resx

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

评论

共有 条评论