C#實(shí)現(xiàn)簡(jiǎn)單聊天程序的方法
本文實(shí)例講述了C#簡(jiǎn)單聊天程序?qū)崿F(xiàn)方法。分享給大家供大家參考。具體如下:
假如有服務(wù)器端程序,ChatServer和客戶端程序ChatClient.實(shí)現(xiàn)客戶端向服務(wù)器端發(fā)送信息的簡(jiǎn)單功能.
運(yùn)行步驟,
1.先是服務(wù)器端start listen,
2.然后客戶端connect.
3.客戶端發(fā)送消息
只要服務(wù)器端start listen了,然后客戶端也connect了.這樣建立起連接后.接受發(fā)送信息就方便了,只要用writer,reader去操作NetworkStream
服務(wù)器ChatServer
創(chuàng)建一個(gè)WinForm頁(yè)面
引用命名空間:
using System.Net.Sockets; using System.Net; using System.IO; using System.Threading; public class ChatServer { private int port = 54321; //端口號(hào) 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); //運(yùn)行一個(gè)線程去處理客戶端發(fā)來(lái)的信息 acceptClientMsgThread.Start(); } //處理客戶端發(fā)來(lái)的信息 private void AcceptClientMsg() { tcpClient = tcpListener.AcceptTcpClient(); if( tcpClient != null) { networkStream = tcpClient.GetStream(); reader = new BinaryReader( networkStream); while (true){ getInfo += reader.ReadString(); //讀取客戶端發(fā)來(lái)的信息 } } } //假如還要顯示信息的話,可以整個(gè)顯示按鈕(當(dāng)然最好的辦法是用些線程) //然后點(diǎn)擊button后讓信息顯示出來(lái)txtShowClientMsg.Text = getInfo; //如果服務(wù)器端想再給客戶端發(fā)信息,就可以整個(gè)發(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(); }
希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。
- C#仿QQ聊天窗口
- 分享一個(gè)C#編寫簡(jiǎn)單的聊天程序(詳細(xì)介紹)
- C#制作簡(jiǎn)單的多人在線即時(shí)交流聊天室
- C#聊天程序服務(wù)端與客戶端完整實(shí)例代碼
- 基于c#用Socket做一個(gè)局域網(wǎng)聊天工具
- c#多線程網(wǎng)絡(luò)聊天程序代碼分享(服務(wù)器端和客戶端)
- C#使用Socket實(shí)現(xiàn)局域網(wǎng)聊天
- C#使用Socket實(shí)現(xiàn)服務(wù)器與多個(gè)客戶端通信(簡(jiǎn)單的聊天系統(tǒng))
- C#基于UDP實(shí)現(xiàn)的P2P語(yǔ)音聊天工具
- C#實(shí)現(xiàn)QQ聊天窗口
相關(guān)文章
C#仿密??üδ艿暮?jiǎn)單實(shí)現(xiàn)代碼
昨天拿C#寫了個(gè)簡(jiǎn)單的密保卡程序(Console的,偷懶了一下 哈哈),實(shí)現(xiàn)了隨機(jī)生成5x5矩陣卡、轉(zhuǎn)換為字符串、從字符串讀取矩陣卡以及簡(jiǎn)單驗(yàn)證的功能2013-04-04C#裝飾器模式(Decorator Pattern)實(shí)例教程
這篇文章主要介紹了C#裝飾器模式(Decorator Pattern),以一個(gè)完整實(shí)例形式講述了C#裝飾器模式的實(shí)現(xiàn)過(guò)程,有助于深入理解C#程序設(shè)計(jì)思想,需要的朋友可以參考下2014-09-09c#使用linq技術(shù)創(chuàng)建xml文件的小例子
c#使用linq技術(shù)創(chuàng)建xml文件的小例子,需要的朋友可以參考一下2013-03-03一文帶你吃透C#中面向?qū)ο蟮南嚓P(guān)知識(shí)
這篇文章主要為大家詳細(xì)介紹了C#中面向?qū)ο蟮南嚓P(guān)知識(shí),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C#有一定的幫助,需要的小伙伴可以參考一下2023-02-02C#中DataTable排序、檢索、合并等操作實(shí)例
這篇文章主要介紹了C#中DataTable排序、檢索、合并等操作實(shí)例,其中詳細(xì)介紹了DataTable.Select的一些注意問(wèn)題和使用技巧等,需要的朋友可以參考下2014-04-04