编写网游客户端
編寫網游客戶端
- 一、目的
- 二、項目完成
- 1. 新建項目
- 2.界面
- 3.客戶端發送數據
- 4.播放背景音樂
- 5.實現游戲背景圖片變換
- 三、總結
- 四、參考
一、目的
編寫一個網游客戶端,游戲服務器的校園內網IP地址為 10.1.230.41,端口為3900,采用TCP連接。
1.連接成功后,可以將服務器發來的消息不停地顯示在 listbox 中;
2.客戶端要發給服務器的數據,通過 textbox輸入 或者點擊button;
3.能夠播放背景音樂;
4.每隔30秒,變換一次游戲背景圖片;
二、項目完成
1. 新建項目
項目初步設置,建立窗體應用:
保存地址:
2.界面
本次實驗使用的網游客戶端框架來自老師的資料
鏈接:https://pan.baidu.com/s/1WSkrRTFPuN1N34BsySkeaQ
提取碼:5n7o
先通過vs2019將程序程序編譯運行,運行結果如下:
打開窗口設計頁面,雙擊窗體可以跳轉至代碼編輯頁面,將Form1()替換成以下代碼:
在頭文件中添加using System.Net.Sockets;
運行效果如下:
可以看到從服務器接收到這些的數據,是正常的,其中一些怪字符是 telnet終端的轉義字符,控制字符的移動、字符顏色、響鈴等,可以忽略。
3.客戶端發送數據
檢查發現,客戶端上少了個確認的控件,自己添加上去。
以下是“確認”控件控件的代碼:
private void button12_Click(object sender, EventArgs e) {//判斷連接是否斷開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("連接已斷開");} }4.播放背景音樂
添加WindowsMediaPlayer控件:
代碼:
分析:
播放和停止播放是通過兩個按鈕的點擊來實現的。當點擊播放按鈕后,就會播放背景音樂,需要暫停播放,就點擊停止按鈕就可以實現停止。
這里音樂播放無法看出效果,就不做演示。
5.實現游戲背景圖片變換
拖入一個timer,設置其Enable為True:
雙擊timer,編寫代碼:
演示效果:
三、總結
對于這一章的作業還是學到了非常多的東西,對窗體應用更加熟悉,同時C#連接服務器十分方便。
四、參考
https://blog.csdn.net/qq_43279579/article/details/109693257
https://jingyan.baidu.com/article/5553fa82cbe8ad65a239340e.html
總結
- 上一篇: java synchronized bo
- 下一篇: 驱动框架7——使用gpiolib完成le