分享WCF聊天程序--WCFChat实现代码

2019-12-30 11:02:31于海丽

------------客户端:

 

 
  1. using System;  using System.Collections.Generic; 
  2. using System.ComponentModel;  using System.Data; 
  3. using System.Drawing;  using System.Linq; 
  4. using System.Text;  using System.Windows.Forms; 
  5. using System.Runtime.InteropServices;  using System.ServiceModel; 
  6.   namespace WCFChatClient 
  7. {  public partial class ChatForm : Form, IChatServiceCallback 
  8. {  /// <summary> 
  9. /// 该函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。   /// </summary> 
  10. /// <param name="hWnd">其窗口程序将接收消息的窗口的句柄</param>  /// <param name="msg">指定被发送的消息</param> 
  11. /// <param name="wParam">指定附加的消息指定信息</param>  /// <param name="lParam">指定附加的消息指定信息</param> 
  12. [DllImport("user32.dll")]  private static extern int SendMessage(IntPtr hWnd, int msg, int wParam, IntPtr lParam); 
  13. //当一个窗口标准垂直滚动条产生一个滚动事件时发送此消息给那个窗口,也发送给拥有它的控件  private const int WM_VSCROLL = 0x115; 
  14. private const int SB_BOTTOM = 7;  private int lastSelectedIndex = -1; 
  15.   private ChatServiceClient proxy; 
  16. private string userName;   
  17. private WaitForm wfDlg = new WaitForm();  private delegate void HandleDelegate(string[] list); 
  18. private delegate void HandleErrorDelegate();   
  19. public ChatForm()  { 
  20. InitializeComponent();  ShowInterChatMenuItem(true); 
  21. }   
  22. /// <summary>  /// 连接服务器 
  23. /// </summary>  private void InterChatMenuItem_Click(object sender, EventArgs e) 
  24. {  lbOnlineUsers.Items.Clear();