C# WinForm使用Socket通信搭建简易聊天室

该文章详细介绍了如何使用C#的WinForm创建一个简单的聊天室应用,包括服务端和客户端界面设计、功能实现以及调试过程。服务端通过Socket监听并处理多个客户端连接,客户端则连接服务端并发送接收消息。在调试过程中,强调了服务端IP地址的正确配置和多线程的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、创建WinForm应用程序

这里就不细说创建方法了,直接上创建完成的效果图吧
在这里插入图片描述主入口两个按钮事件:

 /// <summary>
    /// 打开客户端
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void btn_OpenClient_Click(object sender, EventArgs e)
    {
   
        SocketClient socketClient = new SocketClient();
        socketClient.ShowDialog();
    }
    /// <summary>
    /// 打开服务端
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void btn_OpenService_Click(object sender, EventArgs e)
    {
   
        SocketService socketService = new SocketService();
        socketService.ShowDialog();
    }

​2、服务端界面绘制

在这里插入图片描述
其中txt_MessageBox与txtSendBox属性Multiline=true

3、客户端界面绘制

在这里插入图片描述

4、服务端功能实现

using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Windows.Forms;

namespace Socket通信聊天室
{
   
    public partial class SocketService : Form
    {
   
        public SocketService()
        {
   
            InitializeComponent();
            //多线程编程中,如果子线程需要使用主线程中创建的对象和控件,最好在主线程中体现进行检查取消
            CheckForIllegalCrossThreadCalls = false;
        }
        /// <summary>
        /// 界面加载
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void SocketService_Load(object sender, EventArgs e)
        {
   
            //获取Ip大概率位【0.0.0.0】表示任何IP
            //在服务端连接的时候先查看本机Ipv4地址
            var ip = IPAddress.Any.ToString();
            this.txt_IpAddress.Text = ip;
        }
        /// <summary>
        /// 创建一个字典,用来存储记录服务器与客户端之间的连接(线程问题)
        /// </summary>
        Dictionary<string, System.Net.Sockets.Socket> clientList = new Dictionary<string, System.Net.Sockets.Socket>();
        private void btn_Create_Click
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值