聊天室客户端:
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.Net;
using System.IO;
using System.Threading;
namespace WindowsFormsApplication4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Thread thread = new Thread(new ThreadStart(Listen));
thread.Start();
}
/// <summary>
/// 发送事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnSend_Click(object sender, EventArgs e)
{
if (this.txtSendContent.Text == "")
{
MessageBox.Show("发送内容不能为空!");
return;
}
this.lbSendContent.Items.Add("客户端说:" + this.txtSendContent.Text);
TcpClient tcpclient = new TcpClient();
tcpclient.Connect(IPAddress.Parse("192.168.0.187"), 9999);
NetworkStream ns = tcpclient.GetStream();
if (ns.CanWrite)
{
Byte[] sendBytes = Encoding.UTF8.GetBytes(this.txtSendContent.Text);
ns.Write(sendBytes, 0, sendBytes.Length);
}
else
{
tcpclient.Close();
ns.Close();
return;
}
ns.Close();
tcpclient.Close();
}
/// <summary>
/// 修改显示委托
/// </summary>
/// <param name="text"></param>
protected delegate void UpdateDisplayDelegate(string text);
/// <summary>
/// 监听方法
/// </summary>
public void Listen()
{
IPAddress ipAddress = IPAddress.Any;
TcpListener tcpl = new TcpListener(ipAddress, 9998);
tcpl.Start();
while (true)
{
TcpClient tcpclient = tcpl.AcceptTcpClient();
NetworkStream ns = tcpclient.GetStream();
StreamReader sr = new StreamReader(ns);
Invoke(new UpdateDisplayDelegate(UpdateDisplay), new object[] { sr.ReadToEnd() });
tcpclient.Close();
}
//tcpl.Stop();
}
/// <summary>
/// 赋值给ListBox控件
/// </summary>
/// <param name="text"></param>
public void UpdateDisplay(string text)
{
this.lbSendContent.Items.Add("服务端说:" +text);
}
}
}
聊天室服务端:
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.Net;
using System.Threading;
using System.IO;
namespace WindowsFormsApplication5
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Thread thread = new Thread(new ThreadStart(Listen));
thread.Start();
}
private void btnSend_Click(object sender, EventArgs e)
{
if (this.txtSendContent.Text == "")
{
MessageBox.Show("发送内容不能为空!");
return;
}
this.lbSendContent.Items.Add("服务端说:" + this.txtSendContent.Text);
TcpClient tcpclient = new TcpClient();
tcpclient.Connect(IPAddress.Parse("192.168.0.187"), 9998);
NetworkStream ns = tcpclient.GetStream();
if (ns.CanWrite)
{
Byte[] sendBytes = Encoding.UTF8.GetBytes(this.txtSendContent.Text);
ns.Write(sendBytes, 0, sendBytes.Length);
}
else
{
tcpclient.Close();
ns.Close();
return;
}
ns.Close();
tcpclient.Close();
}
/// <summary>
/// 修改显示委托
/// </summary>
/// <param name="text"></param>
protected delegate void UpdateDisplayDelegate(string text);
/// <summary>
/// 监听方法
/// </summary>
public void Listen()
{
IPAddress ipAddress = IPAddress.Any;
TcpListener tcpl = new TcpListener(ipAddress, 9999);
tcpl.Start();
while (true)
{
TcpClient tcpclient = tcpl.AcceptTcpClient();
NetworkStream ns = tcpclient.GetStream();
StreamReader sr = new StreamReader(ns);
Invoke(new UpdateDisplayDelegate(UpdateDisplay), new object[] { sr.ReadToEnd() });
tcpclient.Close();
}
//tcpl.Stop();
}
/// <summary>
/// 赋值给ListBox控件
/// </summary>
/// <param name="text"></param>
public void UpdateDisplay(string text)
{
this.lbSendContent.Items.Add("客户端说:" + text);
}
}
}