程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 一個簡單的多線程即時通訊程序(類似QQ,MSN)(2)

一個簡單的多線程即時通訊程序(類似QQ,MSN)(2)

編輯:關於C語言

服務器

我創建了一個SocketServer 類,它調用TCPListener.Start() 方法:

IPEndPoint endPoint = new IPEndPoint (ipaAddress, iPort);
listener = new TcpListener (endPoint);
listener.Start();

然後,給監聽創建一個線程:

thrListenForClients = new Thread(new ThreadStart(ListenForClIEnts));
thrListenForClIEnts.Start();

ListenForClients 方法會等待連接,並賦值給一個新的ClIEnt 實例:

Client acceptClient = new ClIEnt();
acceptClient.Socket = listener.AcceptTcpClIEnt();
listenForMessageDelegate = new ListenForMessageDelegate (ListenForMessages);
listenForMessageDelegate.BeginInvoke(acceptClIEnt, new AsyncCallback (ListenForMessagesCallback), "Completed");

Client是一個包含TCPClIEnt的一個類,用於連接:

public class ClIEnt {
string strName;
TcpClient tcpClIEnt;
public ClIEnt()
{
}
public string Name
{
get{return strName;}
set{ this.strName = value;}
}
public TcpClIEnt Socket
{
get{return tcpClIEnt;}
set{ this.tcpClIEnt = value;}
}
public void SendMessage (Message sendMessage)
{
NetworkStream stream = tcpClIEnt.GetStream();
stream.Write(sendMessage.GetRawMessage() , 0, sendMessage.GetRawMessage().Length);
}
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved