導航:首頁 > 源碼編譯 > 聊天軟體chat源碼

聊天軟體chat源碼

發布時間:2022-08-05 12:39:27

㈠ 跪求Qt平台下開發的有界面的區域網即時通訊軟體源代碼和介紹

您所需要的這個即時通訊軟體可以在AnyChat官網免費下載DEMO,文件中包含了源代碼和介紹的。界面也符合您的要求,而且還可以根據自己的需要進行開發。

㈡ 求馬士兵chat源代碼!不勝感激!!![email protected]

已發送,查收 。。

㈢ C#聊天代碼

這是我以前在學校的時候做的一個c/s系統裡面的類似qq聊天工具
你看看。。
這是客服端的代碼:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using System.Net;
using System.Net.Sockets;

namespace demo2
{
public partial class frmTouchWe : Form
{
Thread a;
//發送IP跟埠
private UdpClient udp = new UdpClient("127.0.0.1",9000);
//接收埠
private UdpClient udpSend = new UdpClient(8000);
private IPEndPoint ip = new IPEndPoint(IPAddress.Any,0);
public frmTouchWe()
{
InitializeComponent();
Form. = false;
}

private void frmTouchWe_Load(object sender, EventArgs e)
{ //定義線程開始
a = new Thread(new ThreadStart(Run));
a.Start(); }

private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
//客服接收信息。彈出窗體
frmAnswerInfo answerInfo = new frmAnswerInfo();
answerInfo.Show(); }

private void button1_Click(object sender, EventArgs e)
{
//在自己的信息欄中顯示自己的信息
lsbInfo.Items.Add(txtInfo.Text);
//用戶信息內容
string Mes = txtInfo.Text;
//用戶信息
string mes = "用戶:"+Program.user.id+"("+Program.user.name+")"+" " + time;
//轉換成位元組
byte[] b = UTF8Encoding.UTF8.GetBytes(Mes);
byte[] bb = UTF32Encoding.UTF8.GetBytes(mes);
//發送信息
udp.Send(bb, bb.Length);
udp.Send(b, b.Length);
txtInfo.Text = "";
}
//循環接受客服發來的信息
private void Run()
{
while (true)
{
byte[] b = udpSend.Receive(ref ip);
string mes = UTF8Encoding.UTF8.GetString(b);
lsbInfo.Items.Add(mes);
}
}

private void button2_Click(object sender, EventArgs e)
{
this.Close();
}

private void button3_Click_1(object sender, EventArgs e)
{
//清空所有項
lsbInfo.Items.Clear();
}
}
}

下面是伺服器端的代碼
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using System.Net;
using System.Net.Sockets;

namespace demo2
{
public partial class frmAnswerInfo : Form
{
//定義一條線程,用來循環接收客戶發來的信息
Thread a;
//定義另一條線程,用來升起窗體
Thread b;
//發送到信息的地址
private UdpClient udpSend = new UdpClient("127.0.0.1",8000);
//接收埠
private UdpClient udp = new UdpClient(9000);
private IPEndPoint ip = new IPEndPoint(IPAddress.Any,0);
public frmAnswerInfo()
{
InitializeComponent();
Form. = false;
}
//循環接收信息
private void Run()
{
while (true)
{
byte[] b = udp.Receive(ref ip);
string mes = UTF8Encoding.UTF8.GetString(b);
lsbInfo.Items.Add(mes);
}
}

private void frmAnswerInfo_Load(object sender, EventArgs e)
{
//設置窗體的位置屬性(窗體載入時候慢慢從右下角升上來~類似qq廣告~~)
this.Top = Screen.PrimaryScreen.WorkingArea.Height;
this.Left = Screen.PrimaryScreen.WorkingArea.Width - this.Width;
//設置窗體的名字
a = new Thread(new ThreadStart(Run));

b = new Thread(new ThreadStart(run));
//開始線程
a.Start();
b.Start();
}
//用戶點擊談話時顯示該窗體
private void run()
{
while (true)
{
this.Top = this.Top - 10;
Thread.Sleep(100);
if (Screen.PrimaryScreen.WorkingArea.Height - this.Height >= this.Top)
{
break;
}
}
}
//發送按鈕編碼
private void button1_Click(object sender, EventArgs e)
{
//獲取當前時間
DateTime time = DateTime.Now;
//在自己的信息欄中顯示自己發出去的信息
lsbInfo.Items.Add("在線客服:"+time);
lsbInfo.Items.Add(txtInfo.Text);

//在客戶端顯示自己的信息標題
string mes = "在線客服:"+time;
//信息內容
string Mes = txtInfo.Text;
//發送信息標題
byte[] b = UTF8Encoding.UTF8.GetBytes(mes);
//發送信息內容
byte[] bb = UTF8Encoding.UTF8.GetBytes(Mes);
udpSend.Send(b, b.Length);
udpSend.Send(bb,bb.Length);
txtInfo.Text = "";
}

private void button2_Click(object sender, EventArgs e)
{
this.Close();
}

private void button3_Click(object sender, EventArgs e)
{
//清除所有項
lsbInfo.Items.Clear();
}
}
}

這個可以跑的。。我以前就用過的。

㈣ 哪位哥哥姐姐們有區域網聊天室源碼能不能給我份

在區域網伺服器中安裝Chat Anywhere工具軟體;在安裝該工具之前,可以先到 處下載獲得該工具軟體的安裝程序,然後用滑鼠雙擊它,就能開始聊天服務的安裝操作;安裝過程中,幾乎不需要你進行任何設置,只要你一路單擊「next」按鈕,該工具就會自動完成各種服務配置,並自動完成其他方面的安裝任務。安裝操作結束之後,雙擊系統桌面上的「chat anywhere」快捷圖標,在隨後出現的圖1界面中,你將看到該程序已經默認地創建好幾個不同類別的聊天室了,選中你認為合適的聊天室名稱,再單擊「OK」按鈕,就能啟動伺服器中的聊天服務了。
當然要是你的伺服器中已經架設好並啟動了web伺服器時,那麼在啟動內網聊天服務時就可能出現服務埠沖突的提示,這是因為內網聊天伺服器在默認狀態下也是使用的80埠;遇到這種情況,你可以在圖2所示的埠沖突提示窗口中,為內網伺服器指定一個其他的服務埠號,例如這里筆者為內網聊天伺服器指定的服務埠號為「8009」,單擊「OK」按鈕後,需要重新啟動內網聊天伺服器。

㈤ 求馬士兵老師java聊天系統chat的源代碼,最好分每個版本 沒的話就給最終的 謝謝了

已發,請採納

㈥ 求一個聊天軟體的開源項目,最好大型點的

Mogo Chat 這個算是比較新的
了解更多開源相關,去LUPA社區看看吧。

㈦ 用C#實現聊天工具,單聊和群聊

一般用套接字傳輸信息。

客戶端程序:

1. 打開VS.net,新建一個C#的模板為「Windows 應用程序」的項目,不妨命名為「ChatClient」。

2. 布置界面。往界面上添加一個ListBox控制項(用於顯示用戶列表),一個RichTextBox控制項(用於顯示聊天消息以及系統消息),一個TextBox控制項(用於發送消息),一個CheckBox控制項(確定是否為悄悄話),一個StatusBar控制項以及四個Button控制項(分別為「連接」、「斷開連接」、「開始記錄」、「發送」)。各個控制項的屬性設置可以參見源代碼中的具體設置,這里從略。

3. 客戶端程序的代碼編寫。

當客戶端試圖和伺服器端進行連接時,一個連接必須建立而且得向伺服器端進行注冊。 EstablishConnection()函數運用一個TcpClient來和伺服器端取得連接,同時創建一個NetworkStream來發送消息。還有,埠號和伺服器端的是保持一致的,均為5555。EstablishConnection()函數如下:

private void EstablishConnection()
{
statusBar1.Text = "正在連接到伺服器";
try
{
clientsocket = new TcpClient(serveraddress,serverport);
ns = clientsocket.GetStream();
sr = new StreamReader(ns);
connected = true;
}
catch (Exception)
{
MessageBox.Show("不能連接到伺服器!","錯誤",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
statusBar1.Text = "已斷開連接";
}
}

在和伺服器端連接成功後,程序就用RegisterWithServer()函數向伺服器端發送一個CONN命令。該命令先是發送該用戶的名稱,然後從伺服器端獲得其他所有用戶的列表,所有用戶列表是在ListBox控制項中顯示的。該函數如下:

private void RegisterWithServer()
{
try
{
string command = "CONN|" + ChatOut.Text;
Byte[] outbytes = System.Text.Encoding.ASCII.GetBytes(command.ToCharArray());
ns.Write(outbytes,0,outbytes.Length);

string serverresponse = sr.ReadLine();
serverresponse.Trim();
string[] tokens = serverresponse.Split(new Char[]{'|'});
if(tokens[0] == "LIST")
{
statusBar1.Text = "已連接";
btnDisconnect.Enabled = true;
}
for(int n=1; n
lbChatters.Items.Add(tokens[n].Trim(new char[]{'\r','\n'}));
this.Text = clientname + ":已連接到伺服器";

}
catch (Exception)
{
MessageBox.Show("注冊時發生錯誤!","錯誤",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
在此之後,當然就是用戶之間的聊天了,由ReceiveChat()函數來完成。該函數是一個獨立的線程,它處理所有用戶獲得的消息和用戶發送的消息。它主要處理了CHAT、PRIV、JOIN、GONE、QUIT等命令,處理的方法和伺服器端的類似。具體函數實現如下:

private void ReceiveChat()
{
bool keepalive = true;
while (keepalive)
{
try
{
Byte[] buffer = new Byte[2048];
ns.Read(buffer,0,buffer.Length);
string chatter = System.Text.Encoding.ASCII.GetString(buffer);
string[] tokens = chatter.Split(new Char[]{'|'});

if (tokens[0] == "CHAT")
{
rtbChatIn.AppendText(tokens[1]);
if(logging)
logwriter.WriteLine(tokens[1]);
}
if (tokens[0] == "PRIV")
{
rtbChatIn.AppendText("Private from ");
rtbChatIn.AppendText(tokens[1].Trim() );
rtbChatIn.AppendText(tokens[2] + "\r\n");
if(logging)
{
logwriter.Write("Private from ");
logwriter.Write(tokens[1].Trim() );
logwriter.WriteLine(tokens[2] + "\r\n");
}
}
if (tokens[0] == "JOIN")
{
rtbChatIn.AppendText(tokens[1].Trim() );
rtbChatIn.AppendText(" has joined the Chat\r\n");
if(logging)
{
logwriter.WriteLine(tokens[1]+" has joined the Chat");
}
string newguy = tokens[1].Trim(new char[]{'\r','\n'});
lbChatters.Items.Add(newguy);
}
if (tokens[0] == "GONE")
{
rtbChatIn.AppendText(tokens[1].Trim() );
rtbChatIn.AppendText(" has left the Chat\r\n");
if(logging)
{
logwriter.WriteLine(tokens[1]+" has left the Chat");
}
lbChatters.Items.Remove(tokens[1].Trim(new char[]{'\r','\n'}));
}
if (tokens[0] == "QUIT")
{
ns.Close();
clientsocket.Close();
keepalive = false;
statusBar1.Text = "伺服器端已停止";
connected= false;
btnSend.Enabled = false;
btnDisconnect.Enabled = false;
}
}
catch(Exception){}
}
}

通過以上的一些函數,客戶端程序之間就可以進行自由地聊天了,各個用戶之間還可以互相發送悄悄話。所以程序已經實現了聊天室的基本功能了,不過最後各個用戶還要正常地退出,那就要用到QuitChat()函數了。該函數的具體實現如下:

private void QuitChat()
{
if(connected)
{
try
{
string command = "GONE|" + clientname;
Byte[] outbytes = System.Text.Encoding.ASCII.GetBytes(command.ToCharArray());
ns.Write(outbytes,0,outbytes.Length);
clientsocket.Close();
}
catch(Exception)
{
}
}
if(logging)
logwriter.Close();
if(receive != null && receive.IsAlive)
receive.Abort();
this.Text = "客戶端";
}

到此為止,客戶端程序的主要部分都已經介紹完畢。還有一些按鈕控制項的消息處理函數可以參見源代碼。同時,程序中還有一個聊天記錄功能,該功能和現在流行的聊天軟體的記錄功能類似。不過限於篇幅,在這里就不一一介紹了,有興趣的讀者可以研究一下本文後面的源代碼。

這樣,客戶端程序就完成了。程序運行圖示如下:

總結:

本文向大家初步介紹了套接字的基本概念和實現套接字編程的基本原理,還通過一個很好的實例向大家展示了在C#下進行套接字編程的實現方法和一些編程技巧。從中,我們不難發現運用C#進行套接字編程乃至網路編程有許多優越之處。實常式序實現的思路清晰明了而且通俗易懂,是一個相當不錯的例子,希望各位能好好研讀。同時還希望大家能進一步完善該程序,使之功能更強大、界面更友好。

㈧ 求馬士兵老師java聊天系統chat的源代碼,最好每個版本都齊的,謝謝

已發送,請查收、、含各版本、、

㈨ 誰有C#的開源聊天工具和源碼

網上很多的,我幫你搜索了一下:
http://sourceforge.net/search/?type_of_search=soft&words=chat&search=Search&fq%5B%5D=trove%3A271
這是列表

隨便在裡面下載了一個:
http://sourceforge.net/projects/unreal-im/files/latest

覺得還不錯,不過裡面有些好像是不開源的,直接是可執行文件,不過你也可以下載後,用Reflector反編譯就得到代碼了

㈩ java聊天室源代碼去哪裡看更好

【ClientSocketDemo.java 客戶端Java源代碼】 import java.net.*; import java.io.*; public class ClientSocketDemo { //聲明客戶端Socket對象socket Socket socket = null; //聲明客戶器端數據輸入輸出流 DataInputStream in; DataOutputStream out; //聲明字元串數組對象response,用於存儲從伺服器接收到的信息 String response[]; //執行過程中,沒有參數時的構造方法,本地伺服器在本地,取默認埠10745 public ClientSocketDemo() { try { //創建客戶端socket,伺服器地址取本地,埠號為10745 socket = new Socket("localhost",10745); //創建客戶端數據輸入輸出流,用於對伺服器端發送或接收數據 in = new DataInputStream(socket.getInputStream()); out = new DataOutputStream(socket.getOutputStream()); //獲取客戶端地址及埠號 String ip = String.valueOf(socket.getLocalAddress()); String port = String.valueOf(socket.getLocalPort()); //向伺服器發送數據 out.writeUTF("Hello Server.This connection is from client."); out.writeUTF(ip); out.writeUTF(port); //從伺服器接收數據 response = new String[3]; for (int i = 0; i < response.length; i++) { response[i] = in.readUTF(); System.out.println(response[i]); } } catch(UnknownHostException e){e.printStackTrace();} catch(IOException e){e.printStackTrace();} } //執行過程中,有一個參數時的構造方法,參數指定伺服器地址,取默認埠10745 public ClientSocketDemo(String hostname) { try { //創建客戶端socket,hostname參數指定伺服器地址,埠號為10745 socket = new Socket(hostname,10745); in = new DataInputStream(socket.getInputStream()); out = new DataOutputStream(socket.getOutputStream()); String ip = String.valueOf(socket.getLocalAddress()); String port = String.valueOf(socket.getLocalPort()); out.writeUTF("Hello Server.This connection is from client."); out.writeUTF(ip); out.writeUTF(port); response = new String[3]; for (int i = 0; i < response.length; i++) { response[i] = in.readUTF(); System.out.println(response[i]); } } catch(UnknownHostException e){e.printStackTrace();} catch(IOException e){e.printStackTrace();} } //執行過程中,有兩個個參數時的構造方法,第一個參數hostname指定伺服器地址 //第一個參數serverPort指定伺服器埠號 public ClientSocketDemo(String hostname,String serverPort) { try { socket = new Socket(hostname,Integer.parseInt(serverPort)); in = new DataInputStream(socket.getInputStream()); out = new DataOutputStream(socket.getOutputStream()); String ip = String.valueOf(socket.getLocalAddress()); String port = String.valueOf(socket.getLocalPort()); out.writeUTF("Hello Server.This connection is from client."); out.writeUTF(ip); out.writeUTF(port); response = new String[3]; for (int i = 0; i < response.length; i++) { response[i] = in.readUTF(); System.out.println(response[i]); } } catch(UnknownHostException e){e.printStackTrace();} catch(IOException e){e.printStackTrace();} } public static void main(String[] args) { String comd[] = args; if(comd.length == 0) { System.out.println("Use localhost(127.0.0.1) and default port"); ClientSocketDemo demo = new ClientSocketDemo(); } else if(comd.length == 1) { System.out.println("Use default port"); ClientSocketDemo demo = new ClientSocketDemo(args[0]); } else if(comd.length == 2) { System.out.println("Hostname and port are named by user"); ClientSocketDemo demo = new ClientSocketDemo(args[0],args[1]); } else System.out.println("ERROR"); } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 【ServerSocketDemo.java 伺服器端Java源代碼】 import java.net.*; import java.io.*; public class ServerSocketDemo { //聲明ServerSocket類對象 ServerSocket serverSocket; //聲明並初始化伺服器端監聽埠號常量 public static final int PORT = 10745; //聲明伺服器端數據輸入輸出流 DataInputStream in; DataOutputStream out; //聲明InetAddress類對象ip,用於獲取伺服器地址及埠號等信息 InetAddress ip = null; //聲明字元串數組對象request,用於存儲從客戶端發送來的信息 String request[]; public ServerSocketDemo() { request = new String[3]; //初始化字元串數組 try { //獲取本地伺服器地址信息 ip = InetAddress.getLocalHost(); //以PORT為服務埠號,創建serverSocket對象以監聽該埠上的連接 serverSocket = new ServerSocket(PORT); //創建Socket類的對象socket,用於保存連接到伺服器的客戶端socket對象 Socket socket = serverSocket.accept(); System.out.println("This is server:"+String.valueOf(ip)+PORT); //創建伺服器端數據輸入輸出流,用於對客戶端接收或發送數據 in = new DataInputStream(socket.getInputStream()); out = new DataOutputStream(socket.getOutputStream()); //接收客戶端發送來的數據信息,並顯示 request[0] = in.readUTF(); request[1] = in.readUTF(); request[2] = in.readUTF(); System.out.println("Received messages form client is:"); System.out.println(request[0]); System.out.println(request[1]); System.out.println(request[2]); //向客戶端發送數據 out.writeUTF("Hello client!"); out.writeUTF("Your ip is:"+request[1]); out.writeUTF("Your port is:"+request[2]); } catch(IOException e){e.printStackTrace();} } public static void main(String[] args) { ServerSocketDemo demo = new ServerSocketDemo(); } } www.csdn.com 你可以去這里看看

閱讀全文

與聊天軟體chat源碼相關的資料

熱點內容
老死pdf 瀏覽:25
雲伺服器關機網址不見了 瀏覽:69
余冠英pdf 瀏覽:755
開發一個app上市需要什麼步驟 瀏覽:28
phpsleep方法 瀏覽:430
時間同步伺服器ip地址6 瀏覽:926
鋼琴譜pdf下載 瀏覽:524
香港阿里雲伺服器怎麼封udp 瀏覽:875
APp買海鮮到哪裡 瀏覽:501
遼油社保app總提示更新怎麼辦 瀏覽:586
導入源碼教程視頻 瀏覽:613
天翼貸app在哪裡下載 瀏覽:186
app開發源碼查看器 瀏覽:516
程序員發展到了一個瓶頸 瀏覽:120
程序員去機房幹嘛 瀏覽:697
英雄訓練師怎麼看曾經伺服器 瀏覽:546
魔獸世界單機輸入gm命令 瀏覽:372
51單片機最大負跳距是多少 瀏覽:418
android聊天控制項 瀏覽:128
導致壓縮機壞的原因 瀏覽:295