歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Unity中C#網絡通信和下載保存

開發環境

Window7

Unity3D  3.4.1

VS2010

MB525defy Android 2.2.1

這次帶來的是Unity中C#網絡通信和下載保存,都是很有實用價值的代碼,希望大家喜歡=。= 再免費送上最近做的測試效果圖,公司美術一直很給力,程序與美術之間都在共同進步,這次貼圖測試效果出來了-0- 以後有機會就給大家分享下材質和Shader方面的學習經驗。 

本文工程地址下載地址:

免費下載地址在 http://linux.linuxidc.com/

用戶名與密碼都是www.linuxidc.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. }  
服務器打開的話客戶端收到返回信息(和發送一樣)運行效果如下圖:

Copyright © Linux教程網 All Rights Reserved