Unity中C#网络通信和下载保存


开发环境

Window7

Unity3D  3.4.1

VS2010

MB525defy Android 2.2.1

这次带来的是Unity中C#网络通信和下载保存,都是很有实用价值的代码,希望大家喜欢=。= 再免费送上最近做的测试效果图,公司美术一直很给力,程序与美术之间都在共同进步,这次贴图测试效果出来了-0- 以后有机会就给大家分享下材质和Shader方面的学习经验。 

本文工程地址下载地址:

免费下载地址在 http://linux.bkjia.com/

用户名与密码都是www.bkjia.com

具体下载目录在 /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
  1. using UnityEngine;  
  2. using System.Collections;  
  3. using System.ComponentModel ;  
  4. using System;  
  5. using System.Text;  
  6. using System.Net;  
  7. using System.Net.Sockets;  
  8. using System.Threading;  
  9.   
  10. public class CtoS : MonoBehaviour   
  11. {  
  12.     public string SendM= "-(00)-";  
  13.     public string server = "192.168.0.154";  
  14.     private Socket socket;    
  15.     public GUIText Test;  
  16.       
  17.     void Start ()   
  18.     {  
  19.         try  
  20.         {  
  21.             /*Connect*/  
  22.             socket = new Socket ( AddressFamily.InterNetwork , SocketType.Stream , ProtocolType.Tcp);  
  23.             IPEndPoint tempRemoteIP = new IPEndPoint (IPAddress.Parse(server), 11000);  
  24.             EndPoint epTemp = (EndPoint)tempRemoteIP;  
  25.             socket.Connect(epTemp);  
  26.             print("Success Connect");  
  27.               
  28.             /*Send*/  
  29.             Byte[] bytesSent = Encoding.ASCII.GetBytes(SendM);  
  30.             socket.Send(bytesSent,bytesSent.Length,0);  
  31.               
  32.             /*Received*/  
  33.             Byte[] bytesReceived = new Byte[256];  
  34.             int bytes = 0;  
  35.             string page = "Server: Success Connect " + server + ":\r\n";  
  36.             do   
  37.             {  
  38.                  bytes = socket.Receive(bytesReceived, bytesReceived.Length, 0);  
  39.                  page = page + Encoding.ASCII.GetString(bytesReceived, 0, bytes);  
  40.             }  
  41.             while (bytes > 0);  
  42.             Test.text = page;  
  43.               
  44.         }  
  45.         catch (Exception e)  
  46.         {  
  47.             print(e);     
  48.         }     
  49.     }  
  50. }  
服务器打开的话客户端收到返回信息(和发送一样)运行效果如下图:

  • 1
  • 2
  • 下一页

相关内容