C# winform 聊天室程序 两个人聊天对话如何实时显示出来? 30
从网上下载了一个聊天室程序,发现打开两个client窗体聊天,对话不能实时显示出来,A说完后,只在A中显示,需要B说话,才能显示A说话内容。如何改进,可以像QQ那样A说完...
从网上下载了一个聊天室程序,发现打开两个client窗体聊天,对话不能实时显示出来,A说完后,只在A中显示,需要B说话,才能显示A说话内容。如何改进,可以像QQ那样A说完,在B窗体上就显示呢?
要求给出具体的代码。 展开
要求给出具体的代码。 展开
6个回答
展开全部
如果点刷新按钮,能达到你想要的目的,那么最简单的办法,就是加一个timer控件,定时执行刷新按钮里面的代码。
QQ的机制大约是: 首先假设两个客户端是能进行P2P的时候,服务器协调两个机器进行P2P直连,这个时候,A说话就直接发给B了,如果QQ有聊天日志做以后检查,再备份到服务器上。
如果两个客户端无法进行P2P连接,那就要通过QQ服务器进行中转消息,在服务器中建立代码通道。
而你这个是聊天室的机制,和用户之间对话不一样。我没看见你有对某个用户说话的功能。聊天室说话机制主要还是客户端定时刷新消息,当然服务端可以发送一个简短的命令通知客户端有消息变化,客户端再去提取。
QQ的机制大约是: 首先假设两个客户端是能进行P2P的时候,服务器协调两个机器进行P2P直连,这个时候,A说话就直接发给B了,如果QQ有聊天日志做以后检查,再备份到服务器上。
如果两个客户端无法进行P2P连接,那就要通过QQ服务器进行中转消息,在服务器中建立代码通道。
而你这个是聊天室的机制,和用户之间对话不一样。我没看见你有对某个用户说话的功能。聊天室说话机制主要还是客户端定时刷新消息,当然服务端可以发送一个简短的命令通知客户端有消息变化,客户端再去提取。
展开全部
Console.WriteLine("请输入M公司工资");
int a = Console.ReadLine();
Console.WriteLine("请输入M公司工资年增长率");
double x = Console.ReadLine();
Console.WriteLine("请输入N公司工资(*M公司工资>N公司工资)");
int b = Console.ReadLine();
Console.WriteLine("请输入N公司工资年增长率(*M公司工资年增长率<N公司工资年增长率)");
double y = Console.ReadLine();
for (int i = 1;; i++)
{
if(a*x*i<b*y*i)
{
Console.WriteLine("在N公司需要" + i + "年才能超过M公司");
return;
}
}
int a = Console.ReadLine();
Console.WriteLine("请输入M公司工资年增长率");
double x = Console.ReadLine();
Console.WriteLine("请输入N公司工资(*M公司工资>N公司工资)");
int b = Console.ReadLine();
Console.WriteLine("请输入N公司工资年增长率(*M公司工资年增长率<N公司工资年增长率)");
double y = Console.ReadLine();
for (int i = 1;; i++)
{
if(a*x*i<b*y*i)
{
Console.WriteLine("在N公司需要" + i + "年才能超过M公司");
return;
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-12-28
展开全部
使用Timer定时器控件,定时刷新消息显示控件
更多追问追答
追问
给个具体的代码啊 大哥 或者我把源码发给你 你给我做个
追答
首先在你要显示消息的页面加一个Timer控件
并设置属性。然后在Timer控件的Tick事件里对显示消息的控件进行刷新。例如TextBox1.Refresh();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
socket也行,定时刷新也行不过占用资源,
追问
给个具体的代码啊 大哥 或者我把源码发给你 你给我做个
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
socket编程,查查资料
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询