?? chatclient.cs
字號:
?/*
* 名稱: 基于UDP廣播的小型聊天室
* 作者: kingthy
* MSN : kingthy@gmail.com
* 博客: http://kingthy.cnblogs.com
* 說明: 你可以對代碼進行任意的修改.如果你對程序進行了功能擴充,希望您能發一份新代碼給我.謝謝:)
*
* */
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Net.Sockets;
using Kingthy.UDPChatRoom.Service.Message;
namespace Kingthy.UDPChatRoom.Service
{
/// <summary>
/// 聊天的客戶端,用于發送消息
/// </summary>
public class ChatClient
: IDisposable
{
/// <summary>
///
/// </summary>
public ChatClient()
{
this.Client = new UdpClient();
}
/// <summary>
/// UdpClient
/// </summary>
private UdpClient Client;
#region 消息發送
/// <summary>
/// 發送查詢用戶在線的消息
/// </summary>
public void Query()
{
this.SendMessage(new QueryMessagePackage());
}
/// <summary>
/// 發送表明用戶身份的消息
/// </summary>
public void SendIdentity()
{
this.SendMessage(new IdentityMessagePackage());
}
/// <summary>
/// 發送用戶上線的消息
/// </summary>
public void Online()
{
this.SendMessage(new OnlineMessagePackage());
}
/// <summary>
/// 發送用戶下線的消息
/// </summary>
public void Offline()
{
this.SendMessage(new OfflineMessagePackage());
}
/// <summary>
/// 發送消息廣播
/// </summary>
/// <param name="message"></param>
public void SendMessage(string message)
{
this.SendMessage(new ChatMessagePackage(DateTime.Now, message));
}
/// <summary>
/// 發送消息廣播
/// </summary>
/// <param name="message"></param>
/// <returns></returns>
private void SendMessage(MessagePackageBase message)
{
byte[] data = message.GetPackageData();
this.Client.Send(data, data.Length, ChatClient.ServerAddress);
}
#endregion
/// <summary>
/// 服務器的地址
/// </summary>
private readonly static IPEndPoint ServerAddress = new IPEndPoint(ChatServer.BroadcastAddress, ChatServer.Port);
#region IDisposable 成員
/// <summary>
/// 釋放內存
/// </summary>
public void Dispose()
{
this.Client.Close();
this.Client = null;
}
#endregion
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -