Unity3D网络游戏开发——开始网络编程:Echo(客户端部分)
什么是Echo程序
Echo程序是网络编程中最基础的案例。建立网络连接后,客户端向服务端发送一行文本,服务端收到后将文本送回客户端。Echo程序分为客户端和服务端两个部分,客户端部分使用Unity实现,服务端使用C#语言。
编写客户端程序
建立界面
打开unity,新建名为Echo的项目,制作简单的UGUI界面,在场景中添加两个按钮,一个输入框和一个文本框,命名如下:
ConnButton(按钮):连接按钮,用于发起网络连接
InputField(输入框):文本输入框,用于输入发送给服务端的文本
SendButton(按钮):发送按钮,用于将输入的文本发送给服务器
RecvText(文本框):文本框,用于显示从服务器接收到的文本
编写脚本
在Unity的Assert目录下建立名为Echo的C#脚本,并保存
输入下面代码
using System.Collections;
using System.Collections.Generic;
using System.Net.Sockets;
using System.Text;
using UnityEngine;
using UnityEngine.UI;
public class Echo : MonoBehaviour {
//定义Socket
Socket socket;
//UGUI各组件
public InputField inputField;
public Text text;
//点击连接按钮
public void Connection()
{
//创建连接
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Connect("127.0.0.1", 8888);
}
//点击发送按钮
public void Send()
{
//发送信息
string sendStr = inputField.text;
byte[] sendBytes = Encoding.UTF8.GetBytes(sendStr);
socket.Send(sendBytes);
//接收信息
byte[] readBuff = new byte[1024];
int count = socket.Receive(readBuff);
string recvStr = Encoding.UTF8.GetString(readBuff, 0, count);
text.text = recvStr;
//关闭连接
socket.Close();
}
}
完成客户端
在Unity的Scene界面下创建名为Echo的空物体,将Echo.cs拖拽到Echo上,并将脚本的InputField和Text属性赋值。
在属性面板(Inspector)中给ConnButton添加点击事件设置为Echo的Connection方法,给SendButton添加点击事件设置为Echo的Send方法
运行
点击Unity的运行按钮,运行客户端,点击链接按钮,会提示无法连接
原因是现在没有服务器端,属于正常现象
编写服务器端
未完待续