MB525defy Android 2.2.1
这次带来的是Unity中C#网络通信和下载保存,都是很有实用价值的代码,希望大家喜欢=。= 再免费送上最近做的测试效果图,公司美术一直很给力,程序与美术之间都在共同进步,这次贴图测试效果出来了-0- 以后有机会就给大家分享下材质和Shader方面的学习经验。
本文工程地址下载地址:
用户名与密码都是
具体下载目录在 /pub/2011/10/25/Unity中C#网络通信和下载保存/
本次学习:
1. 简单的C#通信测试
2. 下载和本地保存实例
1. 简单的C#通信测试
首先是与服务器端通信测试,这里羽化和明哥商量的是用C#,因为我们都是Java出生,服务器部分就交给了明哥,羽化这里只是截取了主要实现的小部分代码,所以只能拿来参考,并不能用于实战,明哥最近又在忙什么多线程通信,线程锁之内的高深问题-0- 这是羽化写的客户端实现,只能一次通信,服务器可以多次接受,下面是服务器的截图,在VS2010中运行截图:
代码放在了下面的工程文件中,这里主要学习Unity中的客户端。总共分成3步:连接-发送-接受,简单的3步,这里的“192.168.0.154”是羽化本机的IP地址,大家要测试时不要忘了更改,再者若没打开服务器就运行本工程,就会停顿一定时间,在报错开始运行,原因是羽化没开多线程- -
CtoS.cs
using UnityEngine; using System.Collections; using System.ComponentModel ; using System; using System.Text; using System.Net; using System.Net.Sockets; using System.Threading; public class CtoS : MonoBehaviour { public string SendM= "-(00)-"; public string server = "192.168.0.154"; private Socket socket; public GUIText Test; void Start () { try { /*Connect*/ socket = new Socket ( AddressFamily.InterNetwork , SocketType.Stream , ProtocolType.Tcp); IPEndPoint tempRemoteIP = new IPEndPoint (IPAddress.Parse(server), 11000); EndPoint epTemp = (EndPoint)tempRemoteIP; socket.Connect(epTemp); print("Success Connect"); /*Send*/ Byte[] bytesSent = Encoding.ASCII.GetBytes(SendM); socket.Send(bytesSent,bytesSent.Length,0); /*Received*/ Byte[] bytesReceived = new Byte[256]; int bytes = 0; string page = "Server: Success Connect " + server + ":\r\n"; do { bytes = socket.Receive(bytesReceived, bytesReceived.Length, 0); page = page + Encoding.ASCII.GetString(bytesReceived, 0, bytes); } while (bytes > 0); Test.text = page; } catch (Exception e) { print(e); } } }