Ejemplo n.º 1
0
    bool Send(ref Socket socket, StructRequest response)
    {
        string send = NetFormatHelper.StructRequestToString(response);

        byte[] _data = new Byte[BYTESIZE];
        _data = NetFormatHelper.StringToByte(send);

        try
        {
            Console.WriteLine("송신 : " + send);

            if (!mIsUdp)
            {
                socket.Send(_data);
            }
            else
            {
                socket.SendTo(_data, mRemoteEndPoint);
            }

            return(true);
        }
        catch (Exception err)
        {
            Console.WriteLine("Send error : Soket Close");
            SocektClose(socket);
            return(false);
        }
    }
    /* @ url : AttackBomb
     * @ request :
     * @ response :
     *      bombIndex
     */

    // @Send 함수가 별도로 있음 주의할 것
    void AttackBomb(StructRequest request)
    {
        string user_id = request.uid;

        // 유저가 없을 경우
        if (!mUserData.ContainsKey(user_id))
        {
            return;
        }

        // 물풍선 위치 저장
        StructUserData user_data = mUserData[user_id];

        if (request.parameter.ContainsKey("bombIndex"))
        {
            user_data.bombIndex = request.parameter["bombIndex"];
        }

        // 바로 쏴주기 떄문에 사실 필요는 없다.
        mUserData[user_id] = user_data;

        // 파라매터
        Dictionary <string, string> dic_param = new Dictionary <string, string>();

        dic_param["bombIndex"] = user_data.bombIndex;
        StructRequest res = MakeResponse(request, dic_param);

        // 상대 클라이언트 소켓에 물풍선 통신
        Socket socket;

        if (request.uid == "0")
        {
            socket = mBombSocket1;
        }
        else
        {
            socket = mBombSocket2;
        }

        string send = NetFormatHelper.StructRequestToString(res);

        byte[] _data = new Byte[ServerNet.BYTESIZE];
        _data = NetFormatHelper.StringToByte(send);

        try
        {
            Console.WriteLine("수신 : " + send);
            socket.Send(_data);
        }
        catch (Exception err)
        {
            Console.WriteLine("Send error");
            return;
        }
    }
Ejemplo n.º 3
0
    public void RequestMsg(StructRequest request)
    {
        if (mIsReceiving)
        {
            return;
        }
        string msg = NetFormatHelper.StructRequestToString(request);

        Debug.Log("송신 : " + msg);

        byte[] data = NetFormatHelper.StringToByte(msg);

        mSocket.Send(data);
        mIsReceiving = true;
    }