用C#实现网络游戏客户端
- 一、在win10下用telnet进行测试
- 二、UI设计
- 三、主要代码实现
- 四、效果展示
- 五、参考
- 六、总结
一、在win10下用telnet进行测试
①打开cmd,在能够ping通10.160.52.106(该ip是校园的内网ip,不在内网还是ping不通的)
②在①的前提下,输入命令talnet,进入该终端界面
③输入命令open 10.160.52.106,进入该游戏
二、UI设计
用VS2017建立一个窗体应用项目
设计界面.cs
下面这个样子
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ios8tpkX-1605857751589)(C:\Users\TBM\Desktop\01.png)]
三、主要代码实现
(1)添加命名空间
using System.Net.Sockets;
using System.Net;
using System.Media;
(2)建立TCP连接
Socket tcpClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPAddress ipaddress = IPAddress.Parse("10.160.52.106");
EndPoint point = new IPEndPoint(ipaddress, 3900);
tcpClient.Connect(point);
(3)接受服务器信息
byte[] data = new byte[2048];
//传递一个byte数组,用于接收数据。length表示接收了多少字节的数据
int length = tcpClient.Receive(data);
string message = Encoding.Default.GetString(data, 0, length);
richTextBox1.Text = message;
(4)向服务器发送信息
byte[] sendBytes = Encoding.Default.GetBytes(textBox1.Text+"\n");
tcpClient.Send(sendBytes);
(5)实现背景音乐播放
SoundPlayer sp = new SoundPlayer();
sp.SoundLocation = @"music.wav";
sp.PlayLooping();
(6)实现背景图片切换
//实列化
System.Windows.Forms.Timer mytimer = new System.Windows.Forms.Timer();
//给timer绑定一个事件
mytimer.Tick += new EventHandler(change_Pic);
mytimer.Enabled = true;
//设置30毫秒的时间间隔
mytimer.Interval = 30000;
四、效果展示
五、参考
用C#实现网游客户端
六、总结
虽然是仿着做,但是从中学习了不少的东西,对于C#的结构框架还是整体的服务器网络与客户端链接等方面多有进一步的搞懂(好在,做成功了😳)