IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> C#游戏客户端编程 -> 正文阅读

[系统运维]C#游戏客户端编程

一、测试连接服务器

windows+R打开cmd,先ping一下服务器的网址,看是否能连通(这是学校的内网,没连学校内网是ping不同的):
在这里插入图片描述

首先打开Telnet服务:
在这里插入图片描述

使用telnet命令进入 telnet 终端界面。
在这里插入图片描述

输入 set localecho,打开本地回显。
在这里插入图片描述

连接游戏服务器,输入命令 open 10.1.230.74 3900,进入初始界面:
在这里插入图片描述

自己按要求创建人物,然后就可以玩了,但没有客户端界面不够美观,所以我们要自己写一个。

二、编写客户端

1.新建项目和界面设计

使用VS2019创建一个窗体应用:
在这里插入图片描述

添加音乐播放组件:
在这里插入图片描述
在这里插入图片描述

拖动控件设计窗口,最终界面如下:

在这里插入图片描述

2.连接服务器

代码(注意相关引用using System.Net.Sockets;):

private NetworkStream stream;
private TcpClient tcpClient = new TcpClient();
 private void button10_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.发送数据

双击确定按钮,设计它的点击事件:

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();
        }

嘿嘿,忘了截图了,宿舍连不上校园网就看不到反馈。反正就是按照它左边的框里的要求输入名称呀密码呀啥的,服务器接收到后继续执行下一指令,然后再输入,如此反复而已。

4.播放背景音乐

播放button的点击事件:

  private void button13_Click(object sender, EventArgs e)
        {
            string s = @"C:\Users\86150\VSproject\game\怎么办-SEVENTEEN.mp3";
            axWindowsMediaPlayer1.URL = s;
        }

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

由于是播放音乐,图片无法展示其效果。

5.变换背景

双击timer1控件编写函数:

 private void timer1_Tick(object sender, EventArgs e)
        {
            picture++;
            string picturePath = @"C:\Users\86150\VSproject\game\pic\" + picture + ".jpg";
            //设置图片填充
            pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;//StretchImage为拉伸填满整个box
            pictureBox1.Image = Image.FromFile(picturePath);
            if (picture == 5)
                picture = 0;
        }

在图片路径里加入几张图片,以1、2、3…命名:
在这里插入图片描述
效果:
在这里插入图片描述

三、总结

在老师的布局基础上添加按键功能时,其它都没什么问题,但音乐播放怎么也实现不了,一直都会报一个异常System.BadImageFormatException:“未能加载文件或程序集“AxInterop.WMPLib, Version=1.0.0.0, Culture=neutral, Publi,我的media player不能再这个代码中使用,所以重新建了一个项目,仿照了老师的布局,再次使用media player时就没有问题了。

参考资料

https://blog.csdn.net/weixin_45873781/article/details/109827713
https://blog.csdn.net/qq_43279579/article/details/109693257

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-11-27 10:18:21  更:2021-11-27 10:18:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 1:44:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码