我是網(wǎng)絡編程的新手。在過去的幾天中,我已經進行了大量的谷歌搜索和研究工作,并且擁有一個聊天應用程序,該應用程序可以將多個用戶連接到服務器,并且可以相互發(fā)送消息?,F(xiàn)在,沒有用于斷開客戶端連接的陷阱或方法,我將在以后添加。但是,現(xiàn)在,我希望在客戶端窗體的文本框中添加顯示在線用戶列表的功能。當客戶端連接到服務器時,服務器將該客戶端添加到“ clientList”中。但是,我對如何將此列表發(fā)送給客戶端感到有些困惑,但更重要的是,我如何使客戶端認識到這不是常規(guī)消息,更何況是客戶端列表。我考慮過制作它,以便它使用唯一的字符串發(fā)送它并執(zhí)行if語句,但是我知道這樣做有更好的方法。在客戶端代碼上,我有一個后臺工作程序,偵聽來自服務器的數(shù)據(jù)。當然,如果我將列表序列化為二進制格式化程序,它將被我的“消息偵聽器”接收,并且程序將對連接的客戶端的消息和數(shù)據(jù)感到困惑。因此,我不確定如何區(qū)分兩者。我絕不是要您為我編碼。我只是從那些在該領域擁有更多智慧和經驗的人那里尋求建議。如果我能找到解決此問題的最佳方法的指點,我將不勝感激。感謝您的寶貴時間。中心邊碼- 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 回答
- 0 關注
- 197 瀏覽
添加回答
舉報
0/150
提交
取消