欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-03 08:40:17
目录一、项目初步设置 二、连接服务器三、发送数据四、播放背景音乐五、实现游戏背景图片变换六、总结参考一、项目初步设置 1. 新建项目新建一个windows 窗体应用(.net framework):设...

一、项目初步设置

1. 新建项目

新建一个windows 窗体应用(.net framework)

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

设置项目名称和位置:

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

2. 界面设计

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

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

勾选com 组件下的windows media player

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

界面如下:

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

二、连接服务器

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("服务器未启动!");
    }
}

运行结果:

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

三、发送数据

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

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

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

运行结果:

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

四、播放背景音乐

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

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

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

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

拖入一个timer,设置其enabletrue

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

双击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#编写网游客户端的实现的文章就介绍到这了,更多相关c#编写网游客户端内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

相关标签: C# 网游客户端