我是网络编程的新手。在过去的几天中,我已经进行了大量的谷歌搜索和研究工作,并且拥有一个聊天应用程序,该应用程序可以将多个用户连接到服务器,并且可以相互发送消息。现在,没有用于断开客户端连接的陷阱或方法,我将在以后添加。但是,现在,我希望在客户端窗体的文本框中添加显示在线用户列表的功能。当客户端连接到服务器时,服务器将该客户端添加到“ clientList”中。但是,我对如何将此列表发送给客户端感到有些困惑,但更重要的是,我如何使客户端认识到这不是常规消息,更何况是客户端列表。我考虑过制作它,以便它使用唯一的字符串发送它并执行if语句,但是我知道这样做有更好的方法。在客户端代码上,我有一个后台工作程序,侦听来自服务器的数据。当然,如果我将列表序列化为二进制格式化程序,它将被我的“消息侦听器”接收,并且程序将对连接的客户端的消息和数据感到困惑。因此,我不确定如何区分两者。我绝不是要您为我编码。我只是从那些在该领域拥有更多智慧和经验的人那里寻求建议。如果我能找到解决此问题的最佳方法的指点,我将不胜感激。感谢您的宝贵时间。中心边码- using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Net.Sockets; using System.Net; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace socketClientForm { public partial class Form1 : Form { private static byte[] buffer = new byte[1024]; private static Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); public string message = ""; public Form1() { InitializeComponent(); this.Text = "Client"; } delegate void SetTextCallback(); private void SetText() { if (this.InvokeRequired) { SetTextCallback d = new SetTextCallback(SetText); this.Invoke(d, new object[] { }); } else this.chatBox.AppendText(message); }
1 回答
- 1 回答
- 0 关注
- 180 浏览
添加回答
举报
0/150
提交
取消