毕业论文

打赏
当前位置: 毕业论文 > 计算机论文 >

C#+Socket即时通信程序设计(8)

时间:2017-06-06 16:17来源:毕业论文
SerializeOnlineList(),序列化在线列表,向客户端返回序列化后的字节数组。代码如下所示: private byte[] SerializeOnlineList() { StringCollection onlineList = new Strin


SerializeOnlineList(),序列化在线列表,向客户端返回序列化后的字节数组。代码如下所示:
private byte[] SerializeOnlineList()
        {
            StringCollection onlineList = new StringCollection();
            foreach (object o in _transmit_tb.Keys)
            {
                onlineList.Add(o as string);
            }
            IFormatter format = new BinaryFormatter();
            MemoryStream stream = new MemoryStream();
            format.Serialize(stream, onlineList);
            byte[] ret = stream.ToArray();
            stream.Close();
            return ret;
        }
3.1.2    服务器的启动和关闭
(1)    启动服务器的监听功能
启动前服务器先选择一个端口号,并获得服务器的IP地址,获取IP地址的代码如下:
IPAddress _ip = Dns.GetHostAddresses(Dns.GetHostName())[2];
            _tcpl = new TcpListener(_ip, _port);
            _tcpl.Start();
若IP地址,端口号获取成功,启动服务器的监听功能。
配置监听的端口号代码如下:
  public void GetConfig()
        {
            string portParam;
            Console.Write("请输入监听端口,直接回车则接受默认端口8888: ");
            portParam = Console.ReadLine();
            if (portParam != string.Empty)
            {
                if (!int.TryParse(portParam, out _port) || _port < 1023 || _port > 65535)
                {
                    _port = 8888;
                    Console.WriteLine("端口号不合法,默认端口号被接受!");
                }
            }
        }
服务器启动监听后,要监听的内容有:
    验证用户的唯一性;
    将新连接转入转发表并创建线程为其服务;
    向所有客户端发送系统消息;
其代码如下所示
public void StartUp()
        {
            IPAddress _ip = Dns.GetHostAddresses(Dns.GetHostName())[2];
            _tcpl = new TcpListener(_ip, _port); C#+Socket即时通信程序设计(8):http://www.751com.cn/jisuanji/lunwen_8502.html
------分隔线----------------------------
推荐内容