最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#實(shí)現(xiàn)簡(jiǎn)單聊天程序的方法

 更新時(shí)間:2015年06月05日 10:51:22   作者:聰明的笨蛋  
這篇文章主要介紹了C#實(shí)現(xiàn)簡(jiǎn)單聊天程序的方法,實(shí)例分析了C#聊天程序的原理與客戶(hù)端、服務(wù)器端的實(shí)現(xiàn)技巧,需要的朋友可以參考下

本文實(shí)例講述了C#簡(jiǎn)單聊天程序?qū)崿F(xiàn)方法。分享給大家供大家參考。具體如下:

假如有服務(wù)器端程序,ChatServer和客戶(hù)端程序ChatClient.實(shí)現(xiàn)客戶(hù)端向服務(wù)器端發(fā)送信息的簡(jiǎn)單功能.

運(yùn)行步驟,

1.先是服務(wù)器端start listen,
2.然后客戶(hù)端connect.
3.客戶(hù)端發(fā)送消息
 
只要服務(wù)器端start listen了,然后客戶(hù)端也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;
//開(kāi)始監(jiān)聽(tīng)
private void btnStartListen_Click(object sender, EventArgs e)
{
   tcpListener= new TcpListener( ip , port);
   tcpListener.Start(); //開(kāi)始監(jiān)聽(tīng)
   Thread acceptClientMsgThread= new Thread(AcceptClientMsg);
   //運(yùn)行一個(gè)線程去處理客戶(hù)端發(fā)來(lái)的信息
   acceptClientMsgThread.Start();
}
//處理客戶(hù)端發(fā)來(lái)的信息
private void AcceptClientMsg()
 {
  tcpClient = tcpListener.AcceptTcpClient();
  if( tcpClient != null)
  {
    networkStream = tcpClient.GetStream();
    reader = new BinaryReader( networkStream);
    while (true){
     getInfo += reader.ReadString();  //讀取客戶(hù)端發(fā)來(lái)的信息
    }
  }
}
//假如還要顯示信息的話,可以整個(gè)顯示按鈕(當(dāng)然最好的辦法是用些線程)
//然后點(diǎn)擊button后讓信息顯示出來(lái)txtShowClientMsg.Text = getInfo;
//如果服務(wù)器端想再給客戶(hù)端發(fā)信息,就可以整個(gè)發(fā)送按鈕.然后添加如下代碼
//string sendMsg = txtSendMsge.Text;
//writer = new BinaryWriter( networkStream);
//writer.write( sendMsg);
}

客戶(hù)端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ì)有所幫助。

相關(guān)文章

  • C#獲取文件、文件夾和驅(qū)動(dòng)器的信息示例詳解

    C#獲取文件、文件夾和驅(qū)動(dòng)器的信息示例詳解

    在C#中,文件、文件夾和驅(qū)動(dòng)器是文件系統(tǒng)操作的基本元素,了解如何獲取這些元素的信息對(duì)于開(kāi)發(fā)文件處理和管理工具至關(guān)重要,本文將詳細(xì)介紹如何在C#中獲取有關(guān)文件、文件夾和驅(qū)動(dòng)器的信息,并提供相應(yīng)的示例,需要的朋友可以參考下
    2024-08-08
  • C#使用LINQ中Enumerable類(lèi)方法的延遲與立即執(zhí)行的控制

    C#使用LINQ中Enumerable類(lèi)方法的延遲與立即執(zhí)行的控制

    這篇文章主要介紹了C#的LINQ查詢(xún)中Enumerable類(lèi)方法的延遲與立即執(zhí)行,LINQ語(yǔ)言集成查詢(xún)可以讓C#和VB以查詢(xún)數(shù)據(jù)庫(kù)相同的方式操作內(nèi)存數(shù)據(jù),需要的朋友可以參考下
    2016-03-03
  • C#?TaskScheduler任務(wù)調(diào)度器的實(shí)現(xiàn)

    C#?TaskScheduler任務(wù)調(diào)度器的實(shí)現(xiàn)

    本文主要介紹了C#?TaskScheduler任務(wù)調(diào)度器的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧<BR>
    2023-05-05
  • C#?OpenCvSharp?顏色反轉(zhuǎn)實(shí)例詳解

    C#?OpenCvSharp?顏色反轉(zhuǎn)實(shí)例詳解

    OpenCVSharp是OpenCV的.NET?wrapper,它比Emgucv更接近于原始的OpenCV,并且有很多的樣例參考,其采用LGPL發(fā)行,對(duì)商業(yè)應(yīng)用友好(基本上相當(dāng)于BSD),這篇文章主要介紹了C#?OpenCvSharp?顏色反轉(zhuǎn)的知識(shí),需要的朋友可以參考下
    2024-02-02
  • C#程序員最易犯的編程錯(cuò)誤

    C#程序員最易犯的編程錯(cuò)誤

    這篇文章主要介紹了C#程序員最易犯的10個(gè)編程錯(cuò)誤,了解這些錯(cuò)誤能夠更好地學(xué)習(xí)C#程序設(shè)計(jì),感興趣的小伙伴們可以參考一下
    2015-11-11
  • string與stringbuilder兩者的區(qū)別

    string與stringbuilder兩者的區(qū)別

    今天小編就為大家分享一篇關(guān)于string與stringbuilder兩者的區(qū)別,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • C#實(shí)現(xiàn)工廠方法模式

    C#實(shí)現(xiàn)工廠方法模式

    這篇文章介紹了C#實(shí)現(xiàn)工廠模式的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • 關(guān)于Unity C# Mathf.Abs()取絕對(duì)值性能測(cè)試詳解

    關(guān)于Unity C# Mathf.Abs()取絕對(duì)值性能測(cè)試詳解

    這篇文章主要給大家介紹了關(guān)于Unity C# Mathf.Abs()取絕對(duì)值性能測(cè)試的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Unity C#具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • C#+RedisSearch實(shí)現(xiàn)高性能全文搜索

    C#+RedisSearch實(shí)現(xiàn)高性能全文搜索

    Redis?Search是一個(gè)Redis模塊,它使用壓縮的倒排索引來(lái)實(shí)現(xiàn)快速的索引和低內(nèi)存占用,本文主要介紹了C#如何使用RedisSearch實(shí)現(xiàn)高性能全文搜索,希望對(duì)大家有所幫助
    2023-07-07
  • C#.Net ArrayList的使用方法

    C#.Net ArrayList的使用方法

    這篇文章主要介紹了C#.Net ArrayList的使用方法,使用動(dòng)態(tài)數(shù)組的優(yōu)點(diǎn)是可以根據(jù)用戶(hù)需要,有效利用存儲(chǔ)空間,需要的朋友可以參考下
    2015-10-10

最新評(píng)論

麦盖提县| 徐闻县| 鹤峰县| 福清市| 蒙山县| 墨竹工卡县| 庆元县| 札达县| 大姚县| 教育| 大关县| 盖州市| 雅江县| 阿克苏市| 常宁市| 离岛区| 平舆县| 个旧市| 麻阳| 宜兴市| 龙山县| 和硕县| 东乌珠穆沁旗| 区。| 肥城市| 东山县| 崇义县| 安达市| 彭泽县| 乐平市| 长治县| 普洱| 大姚县| 永嘉县| 澎湖县| 泾阳县| 永仁县| 张家口市| 大宁县| 克拉玛依市| 朔州市|