用C#实现网络游戏客户端

news/2024/6/17 17:53:51 标签: 网络, c#

用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#的结构框架还是整体的服务器网络与客户端链接等方面多有进一步的搞懂(好在,做成功了😳)


http://www.niftyadmin.cn/n/1295195.html

相关文章

Teardrop攻击——发送虚假IP包信息

Teardrop攻击——发送虚假IP包信息一、原始套接字概述二、Teardrop攻击原理阐述三、编写Teardrop程序(伪造一个虚假地址的IP包)四、参考链接一、原始套接字概述 原始套接字,指在传输层下面使用的套接字。流式套接字和数据报套接字这两种套接字…

STM32基于FreeRTOS的多任务程序案例

STM32基于FreeRTOS的多任务程序案例一、初步了解FreeRTOS二、实验要求三、基于FreeRTOS的多任务程序案例四、参考链接使用工具 野火stm32mini开发板 Keil uVision5 野火多功能调试助手 一、初步了解FreeRTOS RTOS Real Time Operating System 实时操作系统。 FreeRTOS FreeRTO…

VIM使用系列:基本和常用的命令列表

2019独角兽企业重金招聘Python工程师标准>>> 进入vim的命令 vim filename :打开或新建文件,并将光标置于第一行首 vim n filename :打开文件,并将光标置于第n行首 vim filename :打开文件,并将光标置于…

STM32USART实验——串口通讯

STM32USART实验——串口通讯一、串口通讯二、USART串口通信实例三、效果演示四、参考资料一、串口通讯 为实现最迫切的需求,利用串口来帮助我们调试程序; 最常用的方法:全双工、异步通讯方式 通讯协议: 对于通讯协议&#xff0c…

RMAN 增量备份 的 对象测试

在练习 RMAN Incremental Backup 时、参照 OCP TK 042 : 对于 RMAN 增量备份的对象、官网摘入如下: You can make incremental backups of databases, individual tablespaces or datafiles. 显然、基于96 题的答案、archive log 不在列位、偶撞了南墙也想测试呀 RM…

一、Socket应用实例

Socket应用实例一、实验环境二、面向连接的流式套接字C/S实例三、非阻塞的多人聊天服务端实例参考链接一、实验环境 (1)Ubuntu18.04——客户端 (2)树莓派——服务端 (3)服务端、客户端处于同一局域网下 …

RedHat和CentOS使用本地yum源配置

使用yum命令安装所需的软件,如果设备网络状况很好,当然也没必要去配置本地yum源,直接使用命令“yum install 软件名字”即可。如果由于一些原因,无法使用网络或者网络状况不好,使用本地yum源会很方便。 RedHat和CentO…

wireshark分析TCP连接的“三次握手”与“四次挥手”

wireshark分析TCP连接的“三次握手”与“四次挥手”一、TCP协议二、TCP的“三次握手“和“四次挥手“(一)“三次握手”(二)“四次挥手”前"两次挥手"既让服务器端知道了客户端想要释放连接,也让客户端知道了…