C#實現(xiàn)簡單聊天程序的方法
本文實例講述了C#簡單聊天程序實現(xiàn)方法。分享給大家供大家參考。具體如下:
假如有服務器端程序,ChatServer和客戶端程序ChatClient.實現(xiàn)客戶端向服務器端發(fā)送信息的簡單功能.
運行步驟,
1.先是服務器端start listen,
2.然后客戶端connect.
3.客戶端發(fā)送消息
只要服務器端start listen了,然后客戶端也connect了.這樣建立起連接后.接受發(fā)送信息就方便了,只要用writer,reader去操作NetworkStream
服務器ChatServer
創(chuàng)建一個WinForm頁面
引用命名空間:
using System.Net.Sockets; using System.Net; using System.IO; using System.Threading; public class ChatServer { private int port = 54321; //端口號 private IPAddress ip = IPAddress.Parse("10.20.30.40"); //ip地址 private TcpListener tcpListener= null; private TcpClient tcpClient = null; private NetworkStream networkStream = null; private BinaryReader reader; //private BinaryWriter writer; private string getInfo = string.empty; //開始監(jiān)聽 private void btnStartListen_Click(object sender, EventArgs e) { tcpListener= new TcpListener( ip , port); tcpListener.Start(); //開始監(jiān)聽 Thread acceptClientMsgThread= new Thread(AcceptClientMsg); //運行一個線程去處理客戶端發(fā)來的信息 acceptClientMsgThread.Start(); } //處理客戶端發(fā)來的信息 private void AcceptClientMsg() { tcpClient = tcpListener.AcceptTcpClient(); if( tcpClient != null) { networkStream = tcpClient.GetStream(); reader = new BinaryReader( networkStream); while (true){ getInfo += reader.ReadString(); //讀取客戶端發(fā)來的信息 } } } //假如還要顯示信息的話,可以整個顯示按鈕(當然最好的辦法是用些線程) //然后點擊button后讓信息顯示出來txtShowClientMsg.Text = getInfo; //如果服務器端想再給客戶端發(fā)信息,就可以整個發(fā)送按鈕.然后添加如下代碼 //string sendMsg = txtSendMsge.Text; //writer = new BinaryWriter( networkStream); //writer.write( sendMsg); }
客戶端ChatClient
using System.Net.Sockets; using System.Net; using System.IO; using System.Threading; public class ChatClient { private int port = 54321; private IPAddress ip = IPAddress.Parse("10.20.30.40"); private TcpClient tcpClient = null; private NetworkStream networkStream = null; //private BinaryReader reader; private BinaryWriter writer; //連接server private void btnStartConnect_Click(object sender, EventArgs e) { tcpClient = new TcpClient(); tcpClient.Connect( ip, port); networkStream = tcpClient.GetStream(); } //發(fā)送信息 private void btnStartConnect_Click(object sender, EventArgs e) { string sendMsg = txtSendMsg.Text; writer = new BinaryWriter( networkStream); writer.Write( sendMsg); //發(fā)送信息 } //如果還要接受server的消息的話. //reader = new BinaryReader( networkStream); //string getInfo = reader.ReadString(); }
希望本文所述對大家的C#程序設計有所幫助。
相關文章
C#裝飾器模式(Decorator Pattern)實例教程
這篇文章主要介紹了C#裝飾器模式(Decorator Pattern),以一個完整實例形式講述了C#裝飾器模式的實現(xiàn)過程,有助于深入理解C#程序設計思想,需要的朋友可以參考下2014-09-09