问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用C#编写一简单聊天程序

发布网友 发布时间:2022-04-25 20:18

我来回答

2个回答

热心网友 时间:2022-06-17 02:43

客户端:namespace chatClient
{
public partial class Client : Form
{
delegate void SetTextCallback(string text);
private System.Windows.Forms.TextBox inputTextBox;
private System.Windows.Forms.TextBox displayTextBox;
private NetworkStream output;
private BinaryWriter writer;
private BinaryReader reader; private string message = "";
private Thread readThread;
private System.ComponentModel.Container components = null; public Client()
{
InitializeComponent(); readThread = new Thread(new ThreadStart(RunClient));
readThread.Start();
} //[STAThread] //static void Main()
//{ Application.Run(new Client()); } protected void Client_Closing(object sender, CancelEventArgs e)
{
System.Environment.Exit(System.Environment.ExitCode);
} private void inputTextBox_KeyDown(object sender, KeyEventArgs e)
{
try
{
if (e.KeyCode == Keys.Enter)
{
writer.Write("客户:" + inputTextBox.Text);
this.displayTextBox.Text += "\r\n客户:" + this.inputTextBox.Text; this.inputTextBox.Text = ""; }//end if }//end try
catch (SocketException ioe)
{
displayTextBox.Text += "\n写入文件错误。";
}
}//end inputTextBox_KeyDown public void RunClient()
{
TcpClient client; try
{
this.SetText("正在连接\r\n");
client = new TcpClient();
client.Connect("localhost", 5000); output = client.GetStream(); writer = new BinaryWriter(output);
reader = new BinaryReader(output); //displayTextBox.Text += ;
this.SetText("\r\n 获取输入、输出流\r\n");
inputTextBox.ReadOnly = false; do
{
try
{
message = reader.ReadString();
this.SetText("\r\n" + message);
}
catch (Exception)
{ System.Environment.Exit(System.Environment.ExitCode); } } while (message != "服务器>>>terminate"); this.SetText("\r\n关闭连接。\r\n");
writer.Close();
reader.Close();
output.Close();
client.Close();
Application.Exit(); }//end try
catch (Exception err)
{ MessageBox.Show(err.ToString()); } }//end method private void SetText(string text)
{
// InvokeRequired需要比较调用线程ID和创建线程ID
// 如果它们不相同则返回true
if (this.displayTextBox.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(SetText);
this.Invoke(d, new object[] { text });
}
else
{
this.displayTextBox.Text += text;
}
}
}//end class
}

热心网友 时间:2022-06-17 02:44

五分一个全套的程序,c#什么时候这么不值钱了
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
一级建造师机电含金量多大 一级建造师机电专业前景怎么样 一级建造师机电吃香吗 收买被拐卖的妇女罪既遂如何判刑 不解救被绑架妇女罪既遂一般判几年 刑法阻碍解救被绑架妇女罪既遂的判罪标准? 根据刑法规定阻碍解救被绑架妇女罪既遂会判多久? 中考剩大约50天 英语不及格,数学也很差。求快速进步方法 湖北十堰的... 帮助孩子从幼儿园过渡到小学要做什么?你们有让孩子上幼小衔接吗? 宝宝不上学前班可以直接上一年级么? 用Winsock写一个简单的聊天程序 请问图中这张能将照片变成手绘漫画的APP是什么? 如何利用UDP协议实现简单的聊天程序? 如何设计一个聊天服务程序?最难解决的问题是什么? 如何用系统中的“Winchat”聊天程序? 怎么把人物照转为动漫照? 聊天程序的基本原理 国外聊天工具有那些呢! 简单聊天程序的设计与实现用什么软件 像腾讯QQ一样的聊天程序有哪些? 美团骑行怎么结束用车 美团骑行骑完以后怎么关锁怎么锁车 美团小黄车骑行结束之后还车时怎么交费上锁 物业服务企业对管理区域什么进行防火巡查每月进行一次防火检查及时消除火灾隐_百度问一问 美团打车结束后怎么联系司机 在ISP和服务器之间加一个防火墙。拓扑图和要求如下。 高速服务区消防需要报审报验吗 美团打车后怎么换车 对于小型企业的服务器用什么杀毒软件和防火干墙 请问,有没有服务器机房三防的说法?如果有是什么概念? 用动态网页编程实现一个简单的聊天程序 照片转换成漫画手绘 肠胃型感冒是什么原因,需要做怎么样的检查和治疗 肠胃感冒 造成它的原因是什么 肠胃感冒是怎么回事 肠胃感冒是如何引起的? 什么原因会得胃肠型感冒啊 肠胃感冒由什么引起的 为什么我总爱胃肠感冒? 什么是肠胃性感冒?患病原因是什么? 肠胃性感冒是怎么回事?应如何防治 大虾怎么画简单又漂亮 虾子 如何画河虾教学视频 学习虾的画法 齐白石画虾的一套画法是什么? 如何用毛笔画好一只虾 5岁的孩子应该如何教育? 虾的绘画中的虾 齐白石的虾是从哪种角度去进行绘画的 齐白石画虾的技法