请教关于聊天器的设计思路及客服程序的设计思路? 请教关于聊天器的设计思路及客服程序的设计思路?那位大侠对聊天器及客服熟悉的话,给小弟提供个思路,有源码更好。谢谢了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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.Net.Sockets;using System.Threading;using System.IO;using System.Net;namespace P2PChat{ public partial class frmMain : Form { public frmMain() { InitializeComponent(); } private Thread td; private TcpListener tcpListener; private static string message = ""; private void frmMain_Load(object sender, EventArgs e) { td = new Thread(new ThreadStart(this.StartListen)); td.Start(); timer1.Start(); } private void button3_Click(object sender, EventArgs e) { Application.Exit(); } private void button2_Click(object sender, EventArgs e) { try { IPAddress[] ip = Dns.GetHostAddresses(Dns.GetHostName()); string strmsg = " "+txtName.Text + "("+ip[0].ToString()+") "+DateTime.Now.ToLongTimeString()+"\n" +" "+ this.rtbSend.Text + "\n"; TcpClient client = new TcpClient(txtIP.Text, 888); NetworkStream netstream = client.GetStream(); StreamWriter wstream = new StreamWriter(netstream, Encoding.Default); wstream.Write(strmsg); wstream.Flush(); wstream.Close(); client.Close(); rtbContent.AppendText(strmsg); rtbContent.ScrollToCaret(); rtbSend.Clear(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void StartListen() { message = ""; tcpListener = new TcpListener(888); tcpListener.Start(); while (true) { TcpClient tclient = tcpListener.AcceptTcpClient(); //接受连接请求 NetworkStream nstream = tclient.GetStream(); //获取数据流 byte[] mbyte = new byte[1024]; //建立缓存 int i = nstream.Read(mbyte, 0, mbyte.Length); //将数据流写入缓存 message = Encoding.Default.GetString(mbyte, 0, i); } } private void frmMain_FormClosed(object sender, FormClosedEventArgs e) { if (this.tcpListener != null) { tcpListener.Stop(); } if (td != null) { if (td.ThreadState == ThreadState.Running) { td.Abort(); } } } private void button1_Click(object sender, EventArgs e) { rtbContent.Clear(); } private void rtbSend_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == '\r') { button2_Click(sender,e); } } private void timer1_Tick(object sender, EventArgs e) { if (message != "") { rtbContent.AppendText(message); rtbContent.ScrollToCaret(); message = ""; } } }}希望对楼主有用 源码http://download.csdn.net/detail/zhuankeshumo/4449548 http://www.cnblogs.com/JimmyZhang/archive/2008/09/07/1286300.html你可以看看这个文章里的 C# 清理串口返回数据缓冲区数据问题(急!) 求正则! c#调用api InternetDial拨号(高分求救) 访问http://www.163.com这样的url,除了在浏览器上打开,还有什么办法? 我发的帖子怎么才能给人加分?我怎么不能给人加呢? 困惑一问:窗体最前端显示 如何让自己的程序类似IE可以弹出那个"证书警告"框? 简单问题 用C#建立 远程 ipc$ 会话 请高手帮帮忙 谢谢 水晶报表问题,100分求救,多表问题 怎样向xml文件中添加新的元素 请教关于.net对返回xml格式的数据处理 关于注册表
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.Net.Sockets;
using System.Threading;
using System.IO;
using System.Net;namespace P2PChat
{
public partial class frmMain : Form
{
public frmMain()
{
InitializeComponent();
}
private Thread td;
private TcpListener tcpListener;
private static string message = ""; private void frmMain_Load(object sender, EventArgs e)
{
td = new Thread(new ThreadStart(this.StartListen));
td.Start();
timer1.Start();
} private void button3_Click(object sender, EventArgs e)
{
Application.Exit();
} private void button2_Click(object sender, EventArgs e)
{
try
{
IPAddress[] ip = Dns.GetHostAddresses(Dns.GetHostName());
string strmsg = " "+txtName.Text + "("+ip[0].ToString()+") "+DateTime.Now.ToLongTimeString()+"\n" +" "+ this.rtbSend.Text + "\n";
TcpClient client = new TcpClient(txtIP.Text, 888);
NetworkStream netstream = client.GetStream();
StreamWriter wstream = new StreamWriter(netstream, Encoding.Default);
wstream.Write(strmsg);
wstream.Flush();
wstream.Close();
client.Close();
rtbContent.AppendText(strmsg);
rtbContent.ScrollToCaret();
rtbSend.Clear();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
} private void StartListen()
{
message = "";
tcpListener = new TcpListener(888);
tcpListener.Start();
while (true)
{
TcpClient tclient = tcpListener.AcceptTcpClient(); //接受连接请求
NetworkStream nstream = tclient.GetStream(); //获取数据流
byte[] mbyte = new byte[1024]; //建立缓存
int i = nstream.Read(mbyte, 0, mbyte.Length); //将数据流写入缓存
message = Encoding.Default.GetString(mbyte, 0, i);
}
} private void frmMain_FormClosed(object sender, FormClosedEventArgs e)
{
if (this.tcpListener != null)
{
tcpListener.Stop();
}
if (td != null)
{
if (td.ThreadState == ThreadState.Running)
{
td.Abort();
}
}
} private void button1_Click(object sender, EventArgs e)
{
rtbContent.Clear();
} private void rtbSend_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '\r')
{
button2_Click(sender,e);
}
} private void timer1_Tick(object sender, EventArgs e)
{
if (message != "")
{
rtbContent.AppendText(message);
rtbContent.ScrollToCaret();
message = "";
}
}
}
}
希望对楼主有用