星期五, 1月 04, 2013

max 9 跟 Socket 的 Send 方法


最近在試怎麼在MAX裡直接開一個 PORT 跟其他應用程式溝通。當然是要透過 .NET 的 Socket
recive 還好,但是send的部份要求一定要用到 System.Byte 型別的資料…,然後當你把資料轉成System.Byte 型別之後
max會自己再把轉成 System.Int ....(無言)
試了很久,最 後還是不得不在 c# 寫一個 warp 出來用 XD
程式碼如下…,反正就是繼承,再多寫個方法出來用…

using System;
using System.Text;
using System.Net.Sockets;

namespace SocketNam
{
    public class MySockets : Socket
    {
        public MySockets(AddressFamily af, SocketType st, ProtocolType pt):base(af, st, pt)
        {
     
        }
        public int send(String str, int maxVer)
        {
            Encoding encode;
            System.Byte[] data;
            int re;
         
            if (maxVer > 16)
            {
               encode = Encoding.Unicode;
            }
            else
            {
               encode = Encoding.ASCII;
            }

            data = encode.GetBytes(str);
            re = base.Send(data);
            return re;          
        }      
    }
}

打完收工…(短短的一段,花了我快三天反覆測試…)
有高手看到有任何錯誤,還煩請指點一下。我對 Socket 的用法還是不太了解…