C# 利用VS編寫一個簡單的網遊客戶端
一.測試連接服務器
1.打開cmd,輸入ping 10.1.230.74
2.輸入telnet,進入telnet界面
3.輸入set localecho,打開本地回顯:
4.連接服務器,輸入命令open 10.1.230.74 3900
二.設計客戶端
1.新建項目
打開VS2022選擇新建Windows窗體應用
如果沒找到,說明沒有安裝相應的配置,可以添加工具
選擇
安裝成功就能找到瞭。
2.設計界面
新建完成後,會直接來到Form1.cs[設計]的窗口,在這裡點擊工具箱就能將控件拖動到設計窗口上
設計窗口如下:
3.控件事件
實現連接到服務器並接受數據
雙擊進入遊戲的Button
添加如下代碼:
private void button1_Click(object sender, EventArgs e) { try { //向指定的IP地址的服務器發出連接請求 tcpClient.Connect("10.1.230.41", 3900); listBox1.Items.Add("連接成功!"); stream = tcpClient.GetStream(); byte[] data = new byte[1024]; //判斷網絡流是否可讀 if (stream.CanRead) { int len = stream.Read(data, 0, data.Length); string msg = Encoding.Default.GetString(data, 0, data.Length); string str = "\r\n"; char[] str1 = str.ToCharArray(); string[] msg1 = msg.Split(str1); for (int j = 0; j < msg1.Length; j++) { listBox1.Items.Add(msg1[j]); music_play(); } } } catch { listBox1.Items.Add("連接失敗!"); } }
實現客戶端發送數據到服務器
雙擊發送的Button
添加如下代碼:
private void button12_Click(object sender, EventArgs e) { music_play(); if (tcpClient.Connected) { //向服務器發送數據 string msg = textBox1.Text; Byte[] outbytes = System.Text.Encoding.Default.GetBytes(msg + "\n"); stream.Write(outbytes, 0, outbytes.Length); byte[] data = new byte[1024]; //接收服務器回復數據 if (stream.CanRead) { int len = stream.Read(data, 0, data.Length); string msg1 = Encoding.Default.GetString(data, 0, data.Length); string str = "\r\n"; char[] str1 = str.ToCharArray(); string[] msg2 = msg1.Split(str1); for (int j = 0; j < msg2.Length; j++) { listBox1.Items.Add(msg2[j]); } } } else { listBox1.Items.Add("連接已斷開"); } textBox1.Clear(); }
播放背景音樂
在項目結構中找到Form1.resx文件並打開
選擇音頻,添加資源
註意文件類型是.wav,這裡不能簡單改後綴名,要用格式轉換工具進行轉換。
在代碼中添加播放函數
private void music_play() { SoundPlayer sp = new SoundPlayer(); sp.SoundLocation = @"劉俊宇,劉綺翹,金海天 - 鐵血丹心.wav"; //你的音樂文件名稱,且註意必須是wav文件 sp.PlayLooping(); }
該函數在客戶端發送數據時被調用。
定時自動更換遊戲背景圖片
回到Form1.cs[設計]的窗口
在工具箱中找到Timer控件,將它拖動到窗口空白區域
點擊timer1,找到設置中的Interval,設置為30000,將Enable設為true。
準備好背景圖片,在這裡使用的是jpg圖片,將圖片分別命名為從1開始的數字。
雙擊timer1
添加代碼:
private void timer1_Tick(object sender, EventArgs e) { Thread th = new Thread(pic_play); th.IsBackground = true; th.Start(); }
添加圖片切換函數
void pic_play() { picture++; //記得在前面定義變量picture string picturePath = @"C:\Users\28205\Pictures\game\" + picture + ".jpg"; //設置圖片填充 pictureBox1.SizeMode = PictureBoxSizeMode.Zoom; pictureBox1.Image = Image.FromFile(picturePath); if (picture == 6) picture = 0; }
三.運行效果
四.總結
使用VS中的控件設計窗口能夠快速拖動佈置,相比於代碼生成控件,方便許多。為控件增添事件也隻需雙擊控件,添加相應操作即可。
到此這篇關於C# 利用VS編寫一個簡單的網遊客戶端的文章就介紹到這瞭,更多相關C# 編寫網遊客戶端內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- C#編寫網遊客戶端的實現
- C#編寫一個網遊客戶端的完整步驟
- C#基於TCP實現簡單遊戲客戶端的完整實例
- c# 使用線程對串口serialPort進行收發數據(四種)
- C#基於Socket的TCP通信實現聊天室案例