C#编写网游客户端的实现

目录
  • 一、项目初步设置
  • 二、连接服务器
  • 三、发送数据
  • 四、播放背景音乐
  • 五、实现游戏背景图片变换
  • 六、总结
  • 参考

一、项目初步设置

1. 新建项目

新建一个WIndows 窗体应用(.Net Framework)

设置项目名称和位置:

2. 界面设计

右击工具箱内的常规,点击选择项

勾选COM 组件下的Windows Media Player

界面如下:

二、连接服务器

Form中初始化进入游戏:

private NetworkStream stream;
private TcpClient tcpClient = new TcpClient();
public Form1()
{
    InitializeComponent();
    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);
            //Encoding ToEncoding = Encoding.GetEncoding("UTF-8");
            //Encoding FromEncoding = Encoding.GetEncoding("GB2312");
            //data=Encoding.Convert(FromEncoding, ToEncoding, data);
            //string msg = Encoding.UTF8.GetString(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("服务器未启动!");
    }
}

运行结果:

三、发送数据

设置确定按钮的name为btnSend,双击该按钮:

//判断连接是否断开
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("连接已断开");
}

运行结果:

四、播放背景音乐

设置播放停止按钮的name分别为btnPlaybtnStop:

播放音乐看不出效果,这里就不放运行结果了。

五、实现游戏背景图片变换

拖入一个timer,设置其EnableTrue

双击timer,编写代码:

int flag = 0;
private void timer1_Tick(object sender, EventArgs e)
{
    flag++;
    string picturePath = @"C:\Users\16438\Desktop\game1\game1\game1\bin\Debug\img\" + flag + ".jpg";
    pictureBox1.Image = Image.FromFile(picturePath);
    if (flag == 3)
    {
        flag = 0;
    }
}

运行结果:

六、总结

C#连接服务器十分方便。

参考

编写一个网游客户端

到此这篇关于C#编写网游客户端的实现的文章就介绍到这了,更多相关C#编写网游客户端内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C#基于TCP协议的服务器端和客户端通信编程的基础教程

    运行在TCP之上常见的网络应用协议有比如HTTP.FTP.SMTP.POP3.IMAP. TCP是TCP/IP体系中最重要的传输协议,它提供全双工和可靠交付的服务,是大多数应用协议工作的基础. TCP是一种面向连接(连接导向)的,可靠的,基于字节流的传输层通信协议. TCP的工作过程 建立连接 传输数据 连接的终止 TCP的主要特点 1.TCP是面向连接的协议 2.是端到端的通信.每个TCP连接只能有两个端点,而且只能一对一通信,不能点对多的 的直接通信 3.高可靠性 4.全双工方式传输 5.数

  • C#实现WebSocket协议客户端和服务器websocket sharp组件实例解析

    看到这篇文章的题目,估计很多人都会问,这个组件是不是有些显的无聊了,说到web通信,很多人都会想到ASP.NET SignalR,或者Nodejs等等,实现web的网络实时通讯.有关于web实时通信的相关概念问题,在这里就不再做具体的介绍了,有兴趣的可以自行百度. 下面我们介绍一款WebSocket组件websocket-sharp的相关内容. 一.websocket-sharp组件概述 websocket-sharp是一个C#实现websocket协议客户端和服务端,websocket-sha

  • C#客户端程序调用外部程序的3种实现方法

    简介 大家都知道,当我们用C#来开发客户端程序的时候,总会不可避免的需要调用外部程序或者访问网站,本篇博客介绍了三种调用外部应用的方法,供参考,下面话不多说了,来一起看看详细的介绍吧. 实现 第一种是利用shell32.dll,实现ShellExecute方法,该方法可同时打开本地程序.文件夹或者访问网站,只要直接输入路径字符串即可, 如C:\Users\Desktop\xx.exe或者https://cn.bing.com/,可以根据返回值判断是否调用成功 (成功0x00000002a , 失

  • c#获取客户端IP地址(考虑代理)

    说明:本文中的内容是我综合博客园上的博文和MSDN讨论区的资料,再通过自己的实际测试而得来,属于自己原创的内容说实话很少,写这一篇是为了记录自己在项目中做过的事情,同时也想抛砖引玉.参考的博文及其作者在下文均有提及.待到自己以后对HTTP.TCP/IP等知识学深入了,一定再来这里深入讨论这个内容. 一.名词 首先说一下接下来要讲到的一些名词. 在Web开发中,我们大多都习惯使用HTTP请求头中的某些属性来获取客户端的IP地址,常见的属性是REMOTE_ADDR.HTTP_VIA和HTTP_X_F

  • C# Socket通信的实现(同时监听多客户端)

    看代码~ //创建socket对象 //第一个参数:设置网络寻址的协议.第二参数设置数据传输的方式.第三个参数设置通信协议 Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //2.绑定IP端口 string str = "127.0.0.1"; int ports = 55555; IPAddress ip = IPAddress.Par

  • C#使用Socket实现服务器与多个客户端通信(简单的聊天系统)

    扩展: 由于server端是存储了所有server与client的连接对象,因此我们是可以基于此demo的基础上实现聊天系统: * 每当一个与用户发言时,是由server接收到的某个用户的发言信息的,此时服务器端可以通过循环发送该用户发送的信息给每个已经连接连接的用户(排除发送者). Server端代码: class Program { //创建一个和客户端通信的套接字 static Socket SocketWatch = null; //定义一个集合,存储客户端信息 static Dicti

  • C#编程获取客户端计算机硬件及系统信息功能示例

    本文实例讲述了C#编程获取客户端计算机硬件及系统信息功能.分享给大家供大家参考,具体如下: 这里使用C#获取客户端计算机硬件及系统信息 ,包括CPU.硬盘.IP.MAC地址.操作系统等. 1.项目引用System.Management库. 2.创建HardwareHandler.cs类文件 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Manag

  • C#编写网游客户端的实现

    目录 一.项目初步设置 二.连接服务器 三.发送数据 四.播放背景音乐 五.实现游戏背景图片变换 六.总结 参考 一.项目初步设置 1. 新建项目 新建一个WIndows 窗体应用(.Net Framework): 设置项目名称和位置: 2. 界面设计 右击工具箱内的常规,点击选择项: 勾选COM 组件下的Windows Media Player: 界面如下: 二.连接服务器 在Form中初始化进入游戏: private NetworkStream stream; private TcpClie

  • C#编写一个网游客户端的完整步骤

    目录 一.认识NetworkStream(网络流) 二.连接服务器 三.客户端向服务器发送数据 四.实现播放背景音乐 五.实现游戏背景图片变换 六.小结 七.参考资料 总结 本过程是使用Virtual Studio 2019实现的,利用老师给出的框架进行的修改. 一.认识NetworkStream(网络流) 1.NetworkStream的相关知识点 ①NetworkStream只能使用于具有TCP/IP协议之中,用于UDP中虽然不会报错,但是会出现异常. ②NetworkStream是面向连接

  • C# 利用VS编写一个简单的网游客户端

    目录 一.测试连接服务器 二.设计客户端 三.运行效果 四.总结 一.测试连接服务器 1.打开cmd,输入ping 10.1.230.74 2.输入telnet,进入telnet界面 3.输入set localecho,打开本地回显: 4.连接服务器,输入命令open 10.1.230.74 3900 二.设计客户端 1.新建项目 打开VS2022选择新建Windows窗体应用 如果没找到,说明没有安装相应的配置,可以添加工具 选择 安装成功就能找到了. 2.设计界面 新建完成后,会直接来到Fo

  • MySql使用skip-name-resolve解决外网链接客户端过慢问题

    在腾讯云上面搭建的mysql使用开发的电脑上navicat进行访问时总是特别的慢,原来是Mysql会对请求的地址进行域名解析,开发的电脑并没有域名,所以会导致特别的慢,使用以下进行解决 [mysqld] skip-name-resolve skip-grant-tables 官方的解释 How MySQL uses DNS When a new thread connects to mysqld, mysqld will spawn a new thread to handle the requ

  • 由JavaScript技术实现的web小游戏(不含网游)

    1.Mario(游戏地址:http://jsmario.com.ar/ ) 传说中的马里奥网页版,一比一实现了红白机时代超级马里奥中所有功能 与关卡,精细程度不逊原版游戏.依 赖库:无 2 . Bunny Hunt (游戏地址: http://www.themaninblue.com/experiment/BunnyHunt/) 猎兔,一款简单耐玩的网页狩猎游戏,没有使用第三方支持库,直接利用 css 与 JavasSript 实 现. 依 赖库:无 3 . Bomberman ( 游戏地址: 

  • Go语言基于Socket编写服务器端与客户端通信的实例

    在golang中,网络协议已经被封装的非常完好了,想要写一个Socket的Server,我们并不用像其他语言那样需要为socket.bind.listen.receive等一系列操作头疼,只要使用Golang中自带的net包即可很方便的完成连接等操作~ 在这里,给出一个最最基础的基于Socket的Server的写法: 复制代码 代码如下: package main  import (      "fmt"      "net"      "log"

  • 提防网游“盗号”病毒

    网络游戏玩家的账号被恶意盗窃,装备被盗卖,这样的事发生得实在太多了.我们时不时地就可以看到这样的新闻:"黑客在网吧机器中植入木马病毒,企图盗窃网络游戏账号--" 网络游戏世界里,一件极品装备不知要花费玩家多少金钱.心血和不眠之夜,因此,玩家最为担心的事情,莫过于自己的虚拟人物身份被冒用,以及虚拟物品在游戏世界中被盗窃.怎么能做到有效防盗?除去在网吧被人偷看账号和密码等人为盗号之外,网络游戏"盗号"大体有以下三大骗术: 骗术一用木马盗取玩家账号.密码.这是比较普遍的情

  • C#编写游戏客户端的实现代码

    一.连接客户端原理流程图 二.功能要求 1)连接成功后,可以将服务器发来的消息不停地显示在 listbox 中: 2) 客户端要发给服务器的数据,通过 textbox输入 或者点击button: 3) 能够播放背景音乐; 4) 每隔30秒,变换一次游戏背景图片. 三.代码实现 新建一个Windows窗体应用 下面是界面的布置,记得还有一个Timer,并且timer要使能,interval也要设置,这里3000为3秒 定义的变量 private NetworkStream stream; priv

  • C++编写的WebSocket服务端客户端实现示例代码

    目录 使用过标准的libwebsockets服务端库测试过,主要是短小精悍,相对于libwebsockets不需要依赖zlib和openssl 以及其他库,直接make就可以使用了,linux跟windows都可以使用. 测试用例: #include "easywsclient.hpp" #include <assert.h> #include <stdio.h> #include <string> using easywsclient::WebSo

  • 编写网页木马详解

    我们经常听到这样的忠告:"不要随意下在不明的程序,不要随意打开邮件的附件..."这样的忠告确实是有用的,不过我们的系统有不少漏洞,许多木马已经不需要客户端和服务端了,他们利用这些系统漏洞按照被系统认为合法的代码执行木马的功能,有的木马会在你完全不知道的情况下潜入,现在我来讲解下通过IE6的漏洞实现访问网页后神不知鬼不觉的下在并执行指定程序的例子,也就是网页木马. 首先我们需要编写几个简单的文件 一.名字为abc.abc的文件<html> <script languag

随机推荐