歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Unity中C#網絡通信和下載保存

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

日期:2017/3/1 11:10:52   编辑:Linux編程

開發環境

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. public class CtoS : MonoBehaviour
  10. {
  11. public string SendM= "-(00)-";
  12. public string server = "192.168.0.154";
  13. private Socket socket;
  14. public GUIText Test;
  15. void Start ()
  16. {
  17. try
  18. {
  19. /*Connect*/
  20. socket = new Socket ( AddressFamily.InterNetwork , SocketType.Stream , ProtocolType.Tcp);
  21. IPEndPoint tempRemoteIP = new IPEndPoint (IPAddress.Parse(server), 11000);
  22. EndPoint epTemp = (EndPoint)tempRemoteIP;
  23. socket.Connect(epTemp);
  24. print("Success Connect");
  25. /*Send*/
  26. Byte[] bytesSent = Encoding.ASCII.GetBytes(SendM);
  27. socket.Send(bytesSent,bytesSent.Length,0);
  28. /*Received*/
  29. Byte[] bytesReceived = new Byte[256];
  30. int bytes = 0;
  31. string page = "Server: Success Connect " + server + ":\r\n";
  32. do
  33. {
  34. bytes = socket.Receive(bytesReceived, bytesReceived.Length, 0);
  35. page = page + Encoding.ASCII.GetString(bytesReceived, 0, bytes);
  36. }
  37. while (bytes > 0);
  38. Test.text = page;
  39. }
  40. catch (Exception e)
  41. {
  42. print(e);
  43. }
  44. }
  45. }
服務器打開的話客戶端收到返回信息(和發送一樣)運行效果如下圖:

Copyright © Linux教程網 All Rights Reserved