资源简介
C#简单窗体聊天程序,主要是练习一下C#封装的TcpListener、TcpClient以及NetworkStream的使用
代码片段和文件信息
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.IO;
namespace ChatTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private NetworkStream networkStream;
private StreamReader streamReader;
private StreamWriter streamWriter;
private TcpClient myclient;
private Thread recvThread; // 接收信息线程
private Thread sendThread; // 发送信息线程
private Thread serverThread;// 服务线程
//[STAThread]
private void button1_Click(object sender EventArgs e)
{
serverThread = new Thread(new ThreadStart(Connection));
serverThread.Start();
}
private void Connection()
{
try
{
IPAddress ipAddress = IPAddress.Parse(txtIP.Text);
Int32 port = Int32.Parse(txtPort.Text);
string hostName = Dns.GetHostEntry(ipAddress).HostName;
myclient = new TcpClient(hostName port);
}
catch
{
MessageBox.Show(“没有连接到服务器!“);
return;
}
listBox1.Items.Add(“客户端成功连接上服务器!“);
button1.Enabled = false; // 连接上了,不让按“连接”按钮
button2.Enabled = true;
button3.Enabled = true;
networkStream = myclient.GetStream();
streamReader = new StreamReader(networkStream);
streamWriter = new StreamWriter(networkStream);
// 创建接收信息线程,并启动
recvThread = new Thread(new ThreadStart(RecvData));
recvThread.Start();
}
// 接收数据
private void RecvData()
{
string s = streamReader.ReadLine();
// 如果没接到服务器退出的消息,则继续接收信息
while (!s.Equals(“exit“))
{
listBox1.Items.Add(“收到信息:“ + s);
s = streamReader.ReadLine();
}
// 收到服务器退出的消息,释放资源
listBox1.Items.Add(“服务器关闭“);
listBox1.Items.Add(“客户端关闭“);
button1.Enabled = true;
button2.Enabled = false;
button3.Enabled = false;
// streamReader.Close();
// streamWriter.Close();
// networkStream.Close();
// myclient.Close();
ReleaseResouce();
}
private void button2_Click(object sender EventArgs e)
{
button1.Enabled = true; // 按了停止之后,“连接”按钮可以用,“发送”不能用
button2.Enabled = false;
button3.Enabled = false;
string exitMsg = “exit“; // 要退出时,发送 exit 信息给服务器
streamWriter.WriteLine(exitMsg);
//刷新当前数据流中的数据
s
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 12800 2012-08-13 21:08 ChatTest\ChatTest\bin\Debug\ChatTest.exe
文件 28160 2012-08-13 21:08 ChatTest\ChatTest\bin\Debug\ChatTest.pdb
文件 14328 2012-08-13 21:12 ChatTest\ChatTest\bin\Debug\ChatTest.vshost.exe
文件 490 2007-07-21 02:33 ChatTest\ChatTest\bin\Debug\ChatTest.vshost.exe.manifest
文件 3762 2012-08-13 20:36 ChatTest\ChatTest\ChatTest.csproj
文件 6392 2012-08-13 21:08 ChatTest\ChatTest\Form1.cs
文件 7542 2012-08-13 21:01 ChatTest\ChatTest\Form1.Designer.cs
文件 5814 2012-08-13 21:01 ChatTest\ChatTest\Form1.resx
文件 515 2012-08-13 21:12 ChatTest\ChatTest\obj\Debug\ChatTest.csproj.FileListAbsolute.txt
文件 847 2012-08-13 21:06 ChatTest\ChatTest\obj\Debug\ChatTest.csproj.GenerateResource.Cache
文件 12800 2012-08-13 21:08 ChatTest\ChatTest\obj\Debug\ChatTest.exe
文件 180 2012-08-13 21:06 ChatTest\ChatTest\obj\Debug\ChatTest.Form1.resources
文件 28160 2012-08-13 21:08 ChatTest\ChatTest\obj\Debug\ChatTest.pdb
文件 180 2012-08-13 20:36 ChatTest\ChatTest\obj\Debug\ChatTest.Properties.Resources.resources
文件 572 2012-08-13 20:39 ChatTest\ChatTest\Program.cs
文件 1372 2012-08-13 20:27 ChatTest\ChatTest\Properties\AssemblyInfo.cs
文件 2866 2012-08-13 20:27 ChatTest\ChatTest\Properties\Resources.Designer.cs
文件 5612 2012-08-13 20:27 ChatTest\ChatTest\Properties\Resources.resx
文件 1093 2012-08-13 20:27 ChatTest\ChatTest\Properties\Settings.Designer.cs
文件 249 2012-08-13 20:27 ChatTest\ChatTest\Properties\Settings.settings
文件 914 2012-08-13 20:27 ChatTest\ChatTest.sln
..A..H. 13824 2012-08-13 21:12 ChatTest\ChatTest.suo
目录 0 2012-08-13 20:30 ChatTest\ChatTest\obj\Debug\Refactor
目录 0 2012-08-13 20:27 ChatTest\ChatTest\obj\Debug\TempPE
目录 0 2012-08-13 20:36 ChatTest\ChatTest\bin\Debug
目录 0 2012-08-13 21:08 ChatTest\ChatTest\obj\Debug
目录 0 2012-08-13 20:27 ChatTest\ChatTest\bin
目录 0 2012-08-13 20:27 ChatTest\ChatTest\obj
目录 0 2012-08-13 20:27 ChatTest\ChatTest\Properties
目录 0 2012-08-13 21:08 ChatTest\ChatTest
............此处省略4个文件信息
相关资源
- C# 使用ListView控件实现图片浏览器(源
- C#指纹识别系统程序 报告
- c# 高校档案信息管理系统
- c#向word文件插入图片
- C#左侧导航菜单(动态生成)
- C#TCP 通信(TCP发送16进制)
- C# sql实现批量导入数据到数据库
- 生命游戏C#
- C# 五子棋程序 附带编程日记
- C#网络三子棋
- c#记事本 完整版(附源码)
- C# pictureBox控件开打和另存为图像(附
- C#创建word并保存
- C# 操作并口
- C# 读取USB 信息
- C#有界面局域网DES UDP加密通讯程序
- c#记事本 基本功能已经全部实现 包附
- C# Socket Tcp文件传输和文字聊天系统
- 逐步法线性回归C#源码
- C# winform实现表数据导出到Excel表格
- C#单像空间后方交会
- C#多窗口记事本可查找替换
- 北大青鸟ACCP8.0S1使用C#开发数据库应用
- 用C#做的鲜花管理系统
- c#读取txt(cs、html)文件
- C#实现二叉树基本操作,排序,计算和
- C#编写的后方交会程序
- C#面试总结绝对好用
- C#四则运算Windows界面
- C#winfrom漂亮的登陆界面
评论
共有 条评论