• 大小: 110KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-10
  • 语言: C#
  • 标签: Socket  通讯  

资源简介

C# 4.0 利用Socket套接字写的Winform多人聊天功能,有服务端Server,和客户端Client,目前只支持局域网的多人聊天,可用于C#学习使用,和Socket的了解。

资源截图

代码片段和文件信息

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;

namespace TCPClient
{
    public partial class ClientForm : Form
    {
        private P2pClient clientobj = new P2pClient();
        public ClientForm()
        {
            InitializeComponent();
            btsendmessage.Enabled = false; //没有连接不允许发送数据
            this.AcceptButton = btsendmessage;
            this.btnstop.Enabled = false;
        }

        private void btnconnect_Click(object sender EventArgs e)
        {
            string nickname = txtnecheng.Text.Trim();
            string ip = txtserverip.Text.Trim();
            string port = txtport.Text.Trim();
            if (nickname==““ || ip==““ || port==““)
            {
                MessageBox.Show(“请将呢称,IP地址,端口号填写完整!““提示“);
                return;
            }
            try
            {
                if (clientobj.receiveThread==null)
                {
                    clientobj.SendConnection(ip Convert.ToInt32(port)); //连接 
                    clientobj.receiveEvent += new P2pClient.receiveDelegate(clientobj_receiveEvent);//订阅事件的处理方法
                    clientobj.Send(nickname + “登陆成功!“);
                    btnconnect.Enabled = false;
                    btsendmessage.Enabled = true;
                    this.btnstop.Enabled = true;
                    this.Text = nickname;
                }
                else
                {
                    btnconnect.Enabled = false;
                    btsendmessage.Enabled = true;
                    this.btnstop.Enabled = true;
                    this.Text = nickname;
                }
             
            }
            catch (Exception ex)
            {
                MessageBox.Show(“连接出错:“+ex.Message“警告“);
                return;
            }
        }

        private void btsendmessage_Click(object sender EventArgs e)
        {
            try
            {
                if (string.IsNullOrEmpty(this.txtmessage.Text))
                {
                    return;
                }
                clientobj.Send(txtnecheng.Text + “   “ + DateTime.Now.ToString() +string.Empty.PadRight(300‘ ‘) + txtmessage.Text);
                txtmessage.Clear();
            }
            catch (Exception ex)
            {
                MessageBox.Show(“连接出错:“ + ex.Message “警告“);
                return;
            }
        }

        void clientobj_receiveEvent(string receiveData)
        {
            try
            {
                if (this.InvokeRequired)
                {
                    P2pClient.receiveDelegate update = new P2pClient.receiveDelegate(clientobj_receiveEvent);
                    this.Invoke(update new object[] { receiveData });//将消息发送给控件线程处理
                }
                else
                {
               

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-12-17 13:00  MultiChat\
     目录           0  2015-12-17 13:00  MultiChat\MultiChat\
     文件        1318  2015-12-15 11:33  MultiChat\MultiChat.sln
     文件       29696  2015-12-16 18:37  MultiChat\MultiChat.suo
     目录           0  2015-12-17 13:00  MultiChat\MultiChat\bin\
     目录           0  2015-12-17 13:00  MultiChat\MultiChat\bin\Debug\
     文件       14848  2015-12-16 12:57  MultiChat\MultiChat\bin\Debug\MultiChat.exe
     文件       32256  2015-12-16 12:57  MultiChat\MultiChat\bin\Debug\MultiChat.pdb
     文件       11600  2015-12-15 17:02  MultiChat\MultiChat\bin\Debug\MultiChat.vshost.exe
     文件        4173  2015-12-16 18:16  MultiChat\MultiChat\ClientForm.cs
     文件       13418  2015-12-15 17:07  MultiChat\MultiChat\ClientForm.Designer.cs
     文件        5817  2015-12-15 17:07  MultiChat\MultiChat\ClientForm.resx
     目录           0  2015-12-17 13:00  MultiChat\MultiChat\obj\
     目录           0  2015-12-17 13:00  MultiChat\MultiChat\obj\x86\
     目录           0  2015-12-17 13:00  MultiChat\MultiChat\obj\x86\Debug\
     文件        2867  2015-12-15 09:46  MultiChat\MultiChat\obj\x86\Debug\DesignTimeResolveAssemblyReferences.cache
     文件        6281  2015-12-16 12:57  MultiChat\MultiChat\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
     文件       14848  2015-12-16 12:57  MultiChat\MultiChat\obj\x86\Debug\MultiChat.exe
     文件       32256  2015-12-16 12:57  MultiChat\MultiChat\obj\x86\Debug\MultiChat.pdb
     文件         180  2015-12-15 17:07  MultiChat\MultiChat\obj\x86\Debug\TCPClient.ClientForm.resources
     文件         575  2015-12-16 12:57  MultiChat\MultiChat\obj\x86\Debug\TCPClient.csproj.FileListAbsolute.txt
     文件         980  2015-12-15 17:07  MultiChat\MultiChat\obj\x86\Debug\TCPClient.csproj.GenerateResource.Cache
     文件        9174  2015-12-16 12:57  MultiChat\MultiChat\obj\x86\Debug\TCPClient.csprojResolveAssemblyReference.cache
     文件         180  2015-12-15 17:07  MultiChat\MultiChat\obj\x86\Debug\TCPClient.Properties.Resources.resources
     目录           0  2015-12-17 13:00  MultiChat\MultiChat\obj\x86\Debug\TempPE\
     文件        4608  2015-12-15 10:05  MultiChat\MultiChat\obj\x86\Debug\TempPE\Properties.Resources.Designer.cs.dll
     文件        2062  2015-12-15 15:12  MultiChat\MultiChat\P2pClient.cs
     文件         506  2015-12-15 10:05  MultiChat\MultiChat\Program.cs
     目录           0  2015-12-17 13:00  MultiChat\MultiChat\Properties\
     文件        1448  2015-12-15 09:46  MultiChat\MultiChat\Properties\AssemblyInfo.cs
     文件        2846  2015-12-15 09:48  MultiChat\MultiChat\Properties\Resources.Designer.cs
............此处省略35个文件信息

评论

共有 条评论