• 大小: 16.56MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-06-28
  • 语言: C#
  • 标签: C#  大作业  三层  聊天  

资源简介

本人的大作业,内含完整代码和数据库文件,用于学习交流。麻烦给相应博客的点赞评论外加关注。仅用于学习交流。

资源截图

代码片段和文件信息

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


//参考网址:  http://www.tuicool.com/articles/RBJFRn
//参考网址:  http://zhangxuefei.site/p/59

namespace chatRoomServer
{

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            ipadr = IPAddress.Loopback;
        }

        //保存多个客户端的通信套接字
        public static Dictionary clientList = null;
        //申明一个监听套接字 
        Socket serverSocket = null;
        //设置一个监听标记
        Boolean isListen = true;
        //开启监听的线程
        Thread thStartListen;
        //默认一个主机监听的IP
        IPAddress ipadr;
        //将endpoint设置为成员字段
        IPEndPoint endPoint;


        private void btnStart_Click(object sender EventArgs e)
        {
            if (serverSocket == null)
            {
                try
                {
                    isListen = true;
                    clientList = new Dictionary();



                    //实例监听套接字

                    //参考网址:http://blog.csdn.net/sight_/article/details/8138802
                    //int socket(int domain int type int protocol);
                    //  domain:   协议域,又名协议族。常用的协议族有,AF_INET、AF_INET6、AF_LOCAL(或称AF_UNIX,Unix域socket)、AF_ROUTE等等。
                    //协议族决定了socket的地址类型,在通信中必须采用对应的地址,如AF_INET决定了要用ipv4地址(32位的)与端口号(16位的)的组合、AF_UNIX决定了要用一个绝对路径名作为地址。
                    //  type:     指定socket类型,。常用的socket类型有,SOCK_STREAM、SOCK_DGRAM、SOCK_RAW、SOCK_PACKET、SOCK_SEQPACKET等等
                    //  protocol:   指定协议。常用的协议有,IPPROTO_TCP、IPPTOTO_UDP、IPPROTO_SCTP、IPPROTO_TIPC等
                    //并不是上面的type和protocol可以随意组合的,如SOCK_STREAM不可以跟IPPROTO_UDP组合。当protocol为0时,会自动选择type类型对应的默认协议
                    serverSocket = new Socket(AddressFamily.InterNetwork SocketType.Stream ProtocolType.Tcp);     //AddressFamily.InterNetwork代表IPV4地址,不包含IPV6   参考网址:http://bbs.csdn.net/topics/390283656?page=1

                    //端点
                    /*  在IPEndPoint类中有两个很有用的构造函数:
                        public IPEndPoint(long int); 
                        public IPEndPoint(IPAddress int);
                        它们的作用就是用指定的地址和端口号初始化IPEndPoint类的新实例。
                     * 参考网址:http://www.cnblogs.com/Medeor/p/3546359.html
                     */
                    //IPAddress ipadr = IPAddress.Parse(“192.168.1.100“);
                    //如果txtIP里面有值,就选择填入的IP作为服务器IP,不填的话就默认是本机的

                    endPoint = new IPEndPoint(ipadr 8080);     //IPAddress.loopback是本地环回接口,其实是虚拟接口,物理不存在的  参考网址:http://baike.sogou.com/v7893363.htm?fromtitle=loopback


                    //绑定
                    //把一个地址族的特定地址给socket
                    //int bind(int sockfd const struct sockaddr *addr socklen_t addrlen);
                    //sockfd:   即socket描述字,它是通过socket()函数创建了,唯一标识一个socket。bind()函数就是将给这个描述字绑定一个名字。
                    //*addr:    一个const str

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2020-06-14 08:27  餐厅点餐管理系统\
     目录           0  2020-06-14 08:27  餐厅点餐管理系统\.git\
     文件        2581  2019-12-02 14:58  餐厅点餐管理系统\.gitattributes
     文件        3997  2019-12-02 14:58  餐厅点餐管理系统\.gitignore
     文件         691  2019-12-02 14:58  餐厅点餐管理系统\.git\config
     文件          73  2019-12-02 14:58  餐厅点餐管理系统\.git\description
     文件          23  2019-12-02 14:58  餐厅点餐管理系统\.git\HEAD
     目录           0  2019-12-24 22:54  餐厅点餐管理系统\.git\hooks\
     文件         177  2019-12-02 14:58  餐厅点餐管理系统\.git\hooks\README.sample
     文件        1288  2019-12-02 14:59  餐厅点餐管理系统\.git\index
     目录           0  2019-12-24 22:54  餐厅点餐管理系统\.git\info\
     文件         113  2019-12-02 14:58  餐厅点餐管理系统\.git\info\exclude
     目录           0  2020-06-14 08:27  餐厅点餐管理系统\.git\logs\
     文件         342  2019-12-02 14:59  餐厅点餐管理系统\.git\logs\HEAD
     目录           0  2020-06-14 08:27  餐厅点餐管理系统\.git\logs\refs\
     目录           0  2019-12-24 22:54  餐厅点餐管理系统\.git\logs\refs\heads\
     文件         342  2019-12-02 14:59  餐厅点餐管理系统\.git\logs\refs\heads\master
     文件         150  2019-12-02 14:59  餐厅点餐管理系统\.git\ms-persist.xml
     目录           0  2020-06-14 08:27  餐厅点餐管理系统\.git\objects\
     目录           0  2019-12-24 22:54  餐厅点餐管理系统\.git\objects\0d\
     文件          89  2019-12-02 14:58  餐厅点餐管理系统\.git\objects\0d\76fe4328089e5b63a9c4190badacfc35ef2624
     目录           0  2019-12-24 22:54  餐厅点餐管理系统\.git\objects\19\
     文件         192  2019-12-02 14:59  餐厅点餐管理系统\.git\objects\19\6cc9554a31d65b13f3e0308e8286afa1de1468
     目录           0  2019-12-24 22:54  餐厅点餐管理系统\.git\objects\1c\
     文件        1863  2019-12-02 14:58  餐厅点餐管理系统\.git\objects\1c\9a181a44b4f9a105f0dc71a40ad0284ab6a7c4
     目录           0  2019-12-24 22:54  餐厅点餐管理系统\.git\objects\1f\
     文件         751  2019-12-02 14:58  餐厅点餐管理系统\.git\objects\1f\f0c423042b46cb1d617b81efb715defbe8054d
     目录           0  2019-12-24 22:54  餐厅点餐管理系统\.git\objects\22\
     文件        1250  2019-12-02 14:59  餐厅点餐管理系统\.git\objects\22\5d2849bd6c97143548bb11402f17814b3807ad
     目录           0  2019-12-24 22:54  餐厅点餐管理系统\.git\objects\28\
     文件         214  2019-12-02 14:59  餐厅点餐管理系统\.git\objects\28\c911cf713d520d7e86b761a1e85d62566d9adc
............此处省略304个文件信息

评论

共有 条评论