首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在C#中选择要与之聊天的人

在C#中选择要与之聊天的人
EN

Stack Overflow用户
提问于 2009-05-05 10:14:04
回答 2查看 2.6K关注 0票数 0

考虑一个局域网信使的情况,那里有很多人在线。我需要选择一个特定的人来聊天。我应该如何在C#中这样做呢?我想要的是选择一个特定的人,点击他的name.After,我输入的任何东西都必须被发送,就像在IPLan信使软件的情况下一样(希望你们已经使用了它)。有人能帮我吗out.Thanks

EN

回答 2

Stack Overflow用户

发布于 2009-05-05 10:48:10

如果希望跟踪用户,我建议编写服务器应用程序以处理所有连接。下面是一个快速示例(注意,这不是一个完整的示例):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
using System.Collections.Generic;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;

private TcpListener tcpListener;
private Thread listenerThread;
volatile bool listening;

// Create a client struct/class to handle connection information and names
private List<Client> clients;

// In constructor
clients = new List<Client>();
tcpListener = new TcpListener(IPAddress.Any, 3000);
listening = true;
listenerThread = new Thread(new ThreadStart(ListenForClients));
listenerThread.Start();

// ListenForClients function
private void ListenForClients()
{
    // Start the TCP listener
    this.tcpListener.Start();

    TcpClient tcpClient;
    while (listening)
    {
        try
        {
            // Suspends while loop till a client connects
            tcpClient = this.tcpListener.AcceptTcpClient();

            // Create a thread to handle communication with client
            Thread clientThread = new Thread(new ParameterizedThreadStart(HandleMessage));
            clientThread.Start(tcpClient);
        }
        catch { // Handle errors }
    }
}

// Handling messages (Connect? Disconnect? You can customize!)
private void HandleMessage(object client)
{
    // Retrieve our client and initialize the network stream
    TcpClient tcpClient = (TcpClient)client;
    NetworkStream clientStream = tcpClient.GetStream();

    // Create our data
    byte[] byteMessage = new byte[4096];
    int bytesRead;
    string message;
    string[] data;

    // Set our encoder
    ASCIIEncoding encoder = new ASCIIEncoding();

    while (true)
    {
        // Retrieve the clients message
        bytesRead = 0;
        try { bytesRead = clientStream.Read(byteMessage, 0, 4096); }
        catch { break; }

        // Client had disconnected
        if (bytesRead == 0)
            break;

        // Decode the clients message
        message = encoder.GetString(byteMessage, 0, bytesRead);
        // Handle the message...
    }
}

请再次注意,这不是一个完整的例子,我知道我在这方面做了很多努力,但我希望这能给你一个想法。如果用户正在连接到聊天服务器/断开连接,则HandleMessage函数中的消息部分可以是用户IP地址,以及您希望指定的其他参数。这是从我为父亲公司编写的应用程序中提取的代码,这样员工就可以从我编写的定制CRM中相互传递信息。如果您还有任何问题,请评论。

票数 3
EN

Stack Overflow用户

发布于 2009-05-05 10:33:57

如果您正在构建用于聊天的UI,并且希望看到所有联机人员,则典型的UI元素将是一个列表框,然后是在框中某个项目的On_Click上触发的代码。该代码可以打开另一个UI元素来开始聊天。

获取登录用户列表比较困难。您需要实现某种观察者/订阅者模式来处理来自正在实现的聊天协议的通知。

GeekPedia在在C#中创建聊天客户端和服务器上有一个很棒的系列。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/826213

复制
相关文章
应用架构之择
企鹅号小编
2018/01/08
1.5K0
应用架构之择
择时荟萃(九):长周期的择时策略
择时荟萃第九篇,之前的报告多为短周期的择时,今天分享两个长周期的择时策略,一个是月频,一个是半年频,长短叠加效果更好。作者来自海外一家对冲基金。获取原文请在后台回复“择时9”。
量化小白
2023/03/19
2380
择时荟萃(九):长周期的择时策略
jquery在iframe中选中父元素节点
我们在使用如layui的layer弹窗或者在页面上用别的方式打开的iframe中可能会要获取到父页面的某个元素
阿超
2022/08/17
1.8K0
小程序拍摄或者在相册中选择图片
wx.chooseImage(Object object) :从本地相册选择图片或使用相机拍照。
德顺
2019/11/13
6210
因子择时【2】
摘要:尽管单一因子在长期时间内能够获得溢价,但它们在短时间内的回报是可变的。本文为三种不同类型---长期战略、部分战术、灵活战术的机构投资者提供了不同的因子配置方法,对于长期战略投资者,组合100%执行既定的战略配置计划,对于部分战术投资者,执行70%既定配置,30%灵活选择的因子配置方法;对于灵活战术的投资者,100%执行因子选择的配置方法。对于如何选择因子,本文通过考察1)宏观周期 2)因子动量 3)因子估值 4)市场情绪 四个方面在因子间进行选择。最后,本文还讨论了用这四个选择因子的方法在自下而上构造的组合和自上而下构造的组合表现。
量化小白
2021/05/08
1.1K0
因子择时【2】
择时荟萃(八):A股的日内动量择时
这篇报告和上一篇有一些相似,差异在于这篇以A股主要研究对象,使用16年的A股数据和3年的美股数据进行研究,更具有参考意义。
量化小白
2023/03/19
6070
择时荟萃(八):A股的日内动量择时
择时荟萃(三):择时策略的溢出效应
择时系列第三篇,分享一篇来自HSBC的一篇论文。作者讨论了趋势策略的溢出效应,并基于溢出效应构建交易策略,改进传统的择时策略。
量化小白
2023/03/19
4610
择时荟萃(三):择时策略的溢出效应
C#编写简单的聊天程序
这是一篇基于Socket进行网络编程的入门文章,我对于网络编程的学习并不够深入,这篇文章是对于自己知识的一个巩固,同时希望能为初学的朋友提供一点参考。文章大体分为四个部分:程序的分析与设计、C#网络编程基础(篇外篇)、聊天程序的实现模式、程序实现。
张子阳
2018/09/30
1.6K0
C#编写简单的聊天程序
择时荟萃(一):综合季节性择时策略
看了很多文献,良莠不齐,决定新开一个系列,把其中高质量的内容分享出来,供大家参考。作为尝试,先以择时为主题,汇总近期看到的择时相关的好文章。
量化小白
2023/03/19
2700
择时荟萃(一):综合季节性择时策略
在DataGrid中选择,确认,删除多行复选框列表
在DataGrid中选择,确认,删除多行复选框列表 Selecting, Confirming & Deleting Multiple Checkbox Items In A DataGrid (i.e. HotMail & Yahoo) Introduction Although I don't have either a Hotmail or Yahoo email account, I do have friends that do, and I have o
阿新
2018/04/13
1.7K0
择时荟萃(五):周期转折点识别与择时(附源码)
择时系列第五篇,来自海外的一名Quant。作者构建了一个识别宏观经济周期转折点识别的模型,用于市场择时,在多个国家市场上验证均有效,并提供了部分源码。获取报告请在后台回复“择时5”。
量化小白
2023/03/19
3800
择时荟萃(五):周期转折点识别与择时(附源码)
Python数据分析之基情的择天记
專 欄 ❈ 罗罗攀,Python中文社区专栏作者 专栏地址: http://www.jianshu.com/u/9104ebf5e177 ❈ 人一生都可能无法逆天改命,但你却是要去奋斗一把。本文章
Python中文社区
2018/01/31
7610
Python数据分析之基情的择天记
python数据分析之基情的择天记
names用于存入小说人物和出场次数;relationships保存人物关系的有向边,该字典的键为有向边的起点,值为一个字典edge,edge的键是有向边的终点,值是有向边的权值,代表两个人物之间联系的紧密程度;linenames存入每行小说出现的人物;all_names是小说所有人物。
罗罗攀
2018/08/28
4320
python数据分析之基情的择天记
在计算机视觉项目中选择OpenCV还是MATLAB
科学计算依赖于执行用不同编程语言编码的计算机算法。计算机视觉就是这样一个跨学科的科学领域,通常简称为CV。计算机视觉被用来开发能够自动完成诸如获取、处理、分析和理解数字图像等任务的技术。它也被用来从现实世界中提取高维数据来产生符号信息。简单地说,计算机视觉使计算机能够像人类一样看到、理解和处理图像和视频。
小白学视觉
2020/02/20
4.4K0
在计算机视觉项目中选择OpenCV还是MATLAB
[Java 安全]消息摘要与数字签名
该文介绍了如何使用Java实现数字签名,包括DSA、RSA和ECDSA算法。文章还介绍了Java中的KeyPair和Signature类,以及如何使用这些类来实现数字签名和验证。
静默虚空
2018/01/05
1.1K0
[Java 安全]消息摘要与数字签名
C#实现QQ(高仿版)聊天窗口
TextBox:允许用户输入文本,并提供多行编辑和密码字符掩码功能; Button:当用户单击它时引发事件; Timer:按用户定义的间隔引发事件的组件
全栈程序员站长
2022/09/15
1.7K0
C#实现QQ(高仿版)聊天窗口
C#使用OpenCV剪切图片中的人物头像
首先创建一个Wpf项目——OpenCV_Face_Wpf,这里版本使用Framework4.7.2。
Kiba518
2021/03/02
1.3K0
C#使用OpenCV剪切图片中的人物头像
你也可以写个聊天程序 C# Socket学习
我们做软件工作的虽然每天都离不开网络,可网络协议细节却不是每个人都会接触和深入了解。我今天就来和大家一起学习下Socket,并写一个简单的聊天程序。
郑子铭
2023/08/30
3270
你也可以写个聊天程序 C# Socket学习
假如可以从认识的人中选一个,买入他今后一生10%的收入
有阵子我在想,如果我作为一个资本方,来投资我自己做一款游戏,作为“资本”的那个“我”会怎么做?
沙因Sign
2021/04/16
3470
假如可以从认识的人中选一个,买入他今后一生10%的收入
点击加载更多

相似问题

在实现Google+共享按钮时,是否可以指定要与之共享的人员?

11

如何在聊天列表中显示我之前与之通信的人?

14

修改要与之匹配的引用编号组

30

更改跟踪没有要与之同步的应用程序

10

在抽搐聊天中选择聊天框?硒

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文