C#编写简单的网游客户端

一、连接游戏服务器

1.连接校园网,输入ping 10.1.230.74
在这里插入图片描述

2.输入telnet,进入telnet界面

系统中的telnet客户端是关闭状态。即Win10默认没有安装telnet功能。
参考文献:‘telnet’ 不是内部或外部命令,也不是可运行的程序
或批处理文件。

在这里插入图片描述
3.输入 set localecho,打开本地回显
在这里插入图片描述
4.连接服务器,输入命令open 10.1.230.74 3900

在这里插入图片描述
连接游戏服务器成功!!!

二、设计客户端

2.1创建项目

在这里插入图片描述

2.2 设计界面

在这里插入图片描述

三、功能实现

3.1 连接到服务器并接受服务器发来的数据

双击进入游戏按钮,生成相关函数
代码如下:
注意定义:
在这里插入图片描述

 private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                //向指定的IP地址的服务器发出连接请求
                tcpClient.Connect("10.1.230.74", 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]);
                    }
                }
             }
            catch
            {
                listBox1.Items.Add("连接失败!");
            }
        }

3.2 客户端发送数据到服务器

双击发送按钮生成相应函数


        private void button3_Click(object sender, EventArgs e)
        {
            if (tcpClient.Connected)
            {
                //向服务器发送数据
                string msg = textBox2.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("连接已断开");
            }
            textBox2.Clear();
        }

3.3 播放背景音乐

添加WindowsMediaPlayer控件,选择常规后,右键,点击选择项
在这里插入图片描述
勾选上
在这里插入图片描述

添加成功!
在这里插入图片描述
但我们添加这个控件后会在界面上显示,不好看,修改这个属性,生成的界面上就没有
在这里插入图片描述

在这里插入图片描述
添加播放暂停按钮,功能代码如下:


        private void button13_Click(object sender, EventArgs e)
        {
            
            string music = @"D:\新建文件夹2\天龙八部.mp3";
            axWindowsMediaPlayer1.URL = music;
        }

        private void button14_Click(object sender, EventArgs e)
        {
            //暂停播放
            axWindowsMediaPlayer1.Ctlcontrols.pause();
        }

3.4 自动变换游戏背景图片

  • 首先拉一个timer控件到空白区域,和一个pictureBox到Form框中
    在这里插入图片描述
  • 在timer属性中设置变换图片的时间间隔

在这里插入图片描述

timer的时间间隔的设置方式
在界面设计下,选中timer控件,接着在右边的属性区域中,找到Interval后,设置它的值,默认值为100(0.1s)。还需要将Enable的值修改为true。

  • 双击timer控件进入代码编辑界面
 private int picture = 0;
        private void timer1_Tick(object sender, EventArgs e)
        {
            picture++;
            string picturePath= @"D:\新建文件夹2\image\" + picture+".jpg";
            pictureBox1.Image = Image.FromFile(picturePath);
            if(picture==6)
            {
                picture = 0;
            }
        }

四、结果展示

在这里插入图片描述

五、参考文献

编写一个网游客户端

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值