美文网首页Unity技术分享
unity网络游戏开发学习笔记(1)Echo

unity网络游戏开发学习笔记(1)Echo

作者: 渡鸦12580 | 来源:发表于2019-07-21 23:47 被阅读0次

Echo程序

echo程序是网络编程中最基础的案例包括建立网络连接客户端,客户端向服务器发送文本,服务器返回文本。

在UNity建立ui如图

建立unity的ui

ui介绍
1.连接到服务器的按钮用来建立网络的连接
2.文本框输入发送的文本
3.text用来显示返回的忘文本
4.发送用来方送文本

代码部分

新建名为Echo的C#脚本
代码如下

using system.Collect ions;
ueing System.Collections.Generic;using UnityEngine;
asing System .Net . Sockets;using UnityEngine.UT:
publle eclas Echo : HonoBeheviour (
//定义套接字
Socket socket;
//UGUI
public Inputrield;
public Text text;
//点击连接按钮
public void Connection(){
//Socket
socket : new sokeledadesamily.Interetwork,ocket
Socketype.stream, ProtocolType . Tep);//Connect
socket.Comn ct("127.0.0.1", 888);
}
//点击发送按钮
public void send(){
//send
string sendstr = InputFeld.text;
byte[] sendBytes = System.Text. Encoding. Default. GetBytes( sendStr);socket. send( sendBytes);//Recv
byte[] readBuff = new byte[1024];
int count = socket . Receive readBuff) ;
string recvStr = System. Text .Encoding .Default .Getstring(readBuff, 0, count);
Text.text= recvStr;
//close
socket.close();
}

代码写完后,把脚本挂载到任意物体上
UI上的按钮和脚本中的方法绑定即可。


连接服务器按钮
发送按钮

由于现在没用编写服务端在此时运行客户端
unity会报错提示无法连接。


unity报错无法连接

创建服务端程序

我使用的是最新版的vs2019,其他版本可能有所不同。

创建项目 创建一个c#控制台程序

项目名称随意填入
但是要注意一下net框架的版本是不是和unity的版本是不是对应

2018.3版本的支持4.x,其他版本可以去百度

建立完成项目后服务端的代码如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.Net.Sockets;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {

            Console.WriteLine("hello ");
            //socket
            Socket llistenfd = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            //bind
            IPAddress ipAdr = IPAddress.Parse("127.0.0.1");
            IPEndPoint ipep = new IPEndPoint(ipAdr,8888);
            llistenfd.Bind(ipep);
            //listen
            llistenfd.Listen(0);
            Console.WriteLine("服务器启动成功");
            //receive
            while (true) {
                Socket connfd = llistenfd.Accept();
                Console.WriteLine("[服务器]accept");
                //receive
                byte[] readbuff = new byte[1024];
                int count = connfd.Receive(readbuff);
                string readStr = System.Text.Encoding.Default.GetString(readbuff, 0, count);
                Console.WriteLine("[服务器接收]+"+readStr);
                //send
                byte[] sendBytes = System.Text.Encoding.Default.GetBytes(System.DateTime.Now.ToString());
                connfd.Send(sendBytes);

            }
        }
    }
}

当客户端发送文本到服务端后,服务端把当前的系统时间返回到客户端如图



先点击链接到服务器,再文本框里随便写点什么,点击发送
客户端就接收到了服务器传来的信息

注意

本文中的网络方法都是阻塞方法也就是说只要客户端没有接收到信息,就会卡住

下一篇文章介绍代码

相关文章

  • unity网络游戏开发学习笔记(1)Echo

    Echo程序 echo程序是网络编程中最基础的案例包括建立网络连接客户端,客户端向服务器发送文本,服务器返回文本。...

  • Unity技术博客 -Unity网络概述

    Unity网络概述Unity提供的网络特性主要针对如下两种人群 *使用Unity开发多人网络游戏。这些人应该从Ne...

  • unity网络游戏开发

    谁懂unity网络开发的,教我一下!我给红包!

  • Unity3d结构化-网络

    如上图所示,unity3d开发过程中,尤其网络游戏开发过程中,对unity3d的网络,数据,逻辑,UI,渲染的应用...

  • 群内资源汇总

    1、Unity学习路线:群文件>_学习路线2、Unity学习资源:群文件>学习资料3、游戏开发资源:群文件>资源4...

  • [Unity]使用Unity开发即时战略游戏(类似红警)

    [Unity]技术学习路线图(长期更新) Unity开发版本 Unity 5.1.2 开发语言 C# 实现功能 视...

  • Git

    开发者1:echo "BB">BBgit add BBgit commitgit push开发者2:echo "b...

  • Unity学习笔记1

    通过一个星期的简单学习,初步了解了下unity,unity的使用,以及场景的布局,UI,以及用C#做一些简单的逻辑...

  • Unity导出IOS项目

    1、参考链接 Unity3D开发-导出IOS项目 Unity打包ios 2、Unity开发 (1)新建一个场景,保...

  • Unity shader基础学习(二) ------ Unity

    本系列文章是学习siki学院Unity Shader入门(Unity2018.3)笔记 一.Unity创建Shad...

网友评论

    本文标题:unity网络游戏开发学习笔记(1)Echo

    本文链接:https://www.haomeiwen.com/subject/mvhblctx.html