달력

42024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

집에서 PS4를 모니터에 연결해서 쓰다보니 한가지 문제가 있었다.

바로 볼륨 조절...

모니터 스피커를 통해 사운드가 나오는데 모니터의 볼륨조절을 하려면

메뉴 -> 사운드 메뉴 -> 볼륨 조절의 순서로 들어가야 되는데

실제 키로 누르면

메뉴 -> 이동 -> 이동 -> 이동 -> 확인 -> 이동 -> 볼륨 조절  순서다...

 

결국 볼륨 조절이 귀찮았던 나는 스테레오 헤드셋을 질러버렸다..

 

사실 배송되었다는 문자를 오늘 받았고 문자 내용상 5~20일이 걸릴거라 길래 다음주나 받아볼줄 알았는데

물건이 벌써 도착했다.

 

집에 오니 도착해 있는 늠름한 상자..

 

 

완충제를 한쪽에만 넣어주는 센스... 차라리 잘라서 양쪽으로 넣어주시지...

 

 

자 상자는 이렇게 생겼다...

별거 없다..

이름은 Gold Wiress Stereo Headset

PS3, PS4, Vita 대응..

비타는 이어폰이 있으니 굳이 헤드셋이 필요없고 PS4 전용으로 사용할 예정..

 

측면사진....

 

후면사진...

대략적인 제품 안내가 적혀있다.

 

 

난 손잡이 달린 상자가 좋더라~~~ >.<

 

 

골드 트로피와 함께 Gold Wireless Stereo Headset 문구..

나중에 플레티넘도 나오려나 ㅡㅡ?

 

 

박스에서 꺼내니 또 박스...

 

 

이제 박스를 오픈 해보자..

커다란 헤드셋  하나가 떨렁 놓여져 있다.

 

상자 뚜껑 안쪽엔  저렇게 적혀있다.

 

 

하지만 왠지 열리게 되어있어서 열어봤는데....

아무것도 없다..

귀찮으니 열지 마세요.

 

헤드셋은 이렇게 포장 비닐이 씌워 있다.

 

 

뚜껑안쪽에 적혀 있던데로 트레이를 들어내자 또 상자가 나왔다.

상자 안에는 당연히 상자가 있고 상자 안에는 당연하다는 듯이 또 상자가 있다니...

즐겁구나.

 

이곳엔 악세서리들이 있다.

구성품은

AUX 케이블, USB 케이블, 파우치, USB동글, 퀵 가이드, 설명서(보증서?)

 

 

동글은 이렇게 생겼다.

이녀석을 PS4 USB에 꽂아주자!!

 

뒷면은 별거 없다.

Wireless Adaptor 라고 적혀있구나..

 

AUX 선... 하지만 봉인..

 

파우치... 역시 봉인...

 

USB 케이블...... 은 평생 꺼낼일이 있을려나??

신형 비타 충전케이블 하나로

비타 - 카메라 - 핸드폰 - PS4 까지 잘 사용중...

비타 충전기 충전 짱 빨라서 핸드폰 충전할때가 젤 좋다..

 

 

이제 제품 사진을 보자...

 

 

우람한 녀석..

 

재질은 내가 그리 좋아하는 재질이 아니다.. 때타면 벗기기 힘든 녀석...

모든 버튼은 헤드셋의 왼쪽에 배치 되어 있으며

볼륨 버튼은 착용시 정면(눈 옆)에 있다.

+ 버튼이 윗쪽 - 버튼이 아랫쪽이며 각각 눌렀을때 헤드셋에서 들리는 소리가 달라 어떤 버튼을 눌렀는지 확인 가능하다.

 

VSS 버튼 virtual surround sound  라는데 아직 안써봤음.

 

 

MUTE.. 이것도 안써봤음.

 

전원부분

1 - Set the headset to standard mode

2 - Set the headset to bass boost mode

라고 되어있다. 

 

 

퀵 가이드 내용으로 봤을때 Sound /Chat 은 채팅과 게임 사운드의 비율을 조절하는 것 같다.

아직 채팅 게임 안해봐서 테스트 못해봤음.

 

 

안쪽은 저렇게 접힐 수 있는 구조다.

 

그래서 접으면 접힘..

 

 

연결 방법은

1. PS4의 전원을 키다.

2. 헤드셋을 충전시킨다 (3.5시간 이상 충전하라고 되어있다)

3. 동글을 PS4에 연결

4. 헤드셋의 전원을 킨다.

라고 퀵 가이드에 나와있는데.. 충전안하고 그냥 연결했더니 배터리 2칸으로 표시 되더라..

 

 

PS4 의 오디오 출력 설정에서 "헤드폰에 출력" 을 설정해 주면 끝.

 

PS4의 디자인이 헤드셋을 걸기에도 딱 좋다.

 

젤라 스킨 씌웠는데 맘에 듬..

 

 

일반 헤드폰은 5~20만원

이어폰은  ~ 15만원 선까지 구매해서 사용중인데.

현재는 199000원 짜리 하우스오브 말리를 작년부터 사용중이다.

 

음질은 딱 10만원 짜리 헤드폰..

오디오테크니카의 7만원대 정도 헤드폰으로 듣던게 오히려 조금더 사운드는 깔끔하다.

하지만 반대로 울림은 좀더 좋은편.

게임용으로 구매한거니 이정도면 만족...

 

구매는 국내 검색 사이트 검색하여 최저가인 9만원대의 구매대행 사이트를 이용했다.

Posted by SadDev
|

C#의 GZipStream을 이용해 패킷을 압축해서 보내고 받고 테스트를 하니 잘된다.

그래서 unity에 적용!!!!! 하자 마자 오류 ...

유니티가 GZipStream과의 호환성 문제가 있나보다.

 

이것 저것 찾다가 sharpZipLib 라는걸 추천하길래 써봤다.

 

현재 서버의 구조는

 

1. 버퍼 생성

2. 버퍼의 데이터를 압축

3. 데이터를 암호화

4. 전송

 

1. 수신

2. 복호화

3. 압축 해제

4. 버퍼를 읽어 들임.

 

순서다.

 

압축 코드는 초 간단..

암호화와 압축이 옵션이라 호출 하는 쪽에서 버퍼를 공유하기 위해 out byte[] ret 으로 받고 있지만  그냥 애초에 리턴으 byte[]로 받는게 보통이다..

 

        private void Compress(byte[] data, out byte[] ret)
        {
            using(MemoryStream ms = new MemoryStream(data))  //  패킷 데이터를 넣어 메모리 스트림 생성 (input)
            {
                using(MemoryStream zip = new MemoryStream())  // 리턴받을 메모리 스트림 생성(output)
                {
                    BZip2.Compress(ms, zip, false, 3);  // input 스트림의 데이터를 output 스트림으로 압축하여 저장
                    ret = zip.ToArray();
                }
            }
        }

        public void Decompress(byte[] data, out byte[] ret)
        {
            using(MemoryStream ms = new MemoryStream(data))  // 패킷 데이터를 넣어 메모리 스트림 생성
            {
                using(MemoryStream zip = new MemoryStream()) // 리턴받을 메모리 스트림 생성
                {
                    BZip2.Decompress(ms, zip, false);  // 압축 해제 하여 output 스트림에 저장
                    ret = zip.ToArray();
                }
            }
        }

 

이렇게 데이터를 보내고 받으니 unity 에서도 잘 된다.

패킷 사이즈는 총 12000 byte 정도가 4000 byte 정도까지 줄어들었다.

 

 

Posted by SadDev
|

미니 워리워즈 라는 게임을 하는데 잘못 키운 기분이 들어 초기화를 하려고 찾아보니 어디를 봐도 핸드폰 초기화를 해야지만 된다고 한다.

실제로 어플을 몇번 지우고 다시 깔아봤지만 소용이 없다.

어플을 다시 깔았는데 고유키를 어떻게 유지하는 것일까 궁금했는데 해결책은 의외로 쉬웠다.

 

"전화번호"....

어플 설치시 요구하는 권한에 통화 관련 권한이 있었다.

즉 전화번호와 관련된 무언가의 권한을 필요로 한다는 것이다.

 

USIM을 뽑고 wifi만 연결해서 어플을 재 설치 하니 초기화가 됐다.

다르게 생각하면 USIM을 다른 폰에 연결하고 어플을 깔면 계정이 연동될지도 모르겠다.

'게임 > 기타' 카테고리의 다른 글

[유니클로] 몬스터헌터포터블3 기획 티셔츠..  (2) 2011.01.09
Posted by SadDev
|

internal static ManualResetEvent recvDone = new ManualResetEvent(false);

....

public void Receive(Session session)
        {

session.Socket.BeginReceive(session.RecvMsg.stream, session.RecvMsg.ReadSize, (session.RecvMsg.stream.Length - session.RecvMsg.ReadSize), SocketFlags.None, new AsyncCallback(ReceiveCallback), session);

recvDone.WaitOne();

}

private void ReceiveCallback(IAsyncResult ar)
        {

recvDone.Set();

....
                this.Receive(session);

}

 

이와 같은 코드로 비동기 소켓 서버를 구현하였다.

 

그런데...

동시에 여러개의 패킷이 마구 날아오는 경우 최초 3~4개는 바로 바로 받는데 이후부터는 0.5초당 1개씩 패킷이 처리된다..

고민을 하다가  ManualResetEvent 를 사용안하고  IAsyncResult 의 WaitOne을 써보기로 했다.

 

Receive 함수의 비동기 리시브를

IAsyncResult ar = session.Socket.BeginReceive(session.RecvMsg.stream, session.RecvMsg.ReadSize, (session.RecvMsg.stream.Length - session.RecvMsg.ReadSize), SocketFlags.None, new AsyncCallback(ReceiveCallback), session);
                ar.AsyncWaitHandle.WaitOne();

이렇게 바꾸니.. 바로 바로 리시브 처리가 된다 ..

 

아우... msdn예제에서는 ResetEvent를 사용하던데.. IAsyncResult 로 바꾸니 잘되는 이유가 무엇인지 좀 찾아봐야겠다.

Posted by SadDev
|

이 망할 오류때문에 몇일을 고생한건지....

나에게 발생한 오류는 위와 같은 오류였다.


구글 검색을 통해

http://antonperez.com/2012/02/09/cannot-add-duplicate-collection-entry-of-type-error-in-iis-77-5/ 를 찾아냈고

defaultappPool.config 를 수정하라는 내용대로 수정을 하자 해결이 됐다.

하지만 문제는 IIS가 재시작 될때마다 해당 내용은 다시 써지고 반복이라는 것...


여러가지를 찾아보던 중 근본적인 config파일을 수정해야 될것 같다라는 생각에 설정을 찾다가 발견..

C:\Windows\System32\inetsrv\config\applicationHost.config 라는 파일이 있다.

이 파일에도 동일한 내용이 있으므로 여기서 수정을 하면 된다..


우선 해당 파일은 관리자 계정이 아니면 권한이 없다고 접근 금지가 되므로 파일을 다른곳에 복사 한 후 수정해서 다시 덮어쓰기 하면 된다.


내용은 <isapiFilters> 로 검색하면 

<isapiFilters>

            <filter name="ASP.Net_2.0.50727-64" path="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness64,runtimeVersionv2.0" />

            <filter name="ASP.Net_2.0.50727.0" path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness32,runtimeVersionv2.0" />

            <filter name="ASP.Net_2.0_for_V1.1" path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="runtimeVersionv1.1" />

            <filter name="ASP.Net_4.0_64bit" path="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_filter.dll" enableCache="true" preCondition="runtimeVersionv4.0,bitness64" />

            <filter name="ASP.Net_4.0_32bit" path="C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_filter.dll" enableCache="true" preCondition="runtimeVersionv4.0,bitness32" />

        </isapiFilters>


 라는 내용과

<location path="Default Web Site">

        <system.webServer>

            <isapiFilters>

<filter name="ASP.Net_4.0_64bit" path="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_filter.dll" enableCache="true" preCondition="runtimeVersionv4.0,bitness64" />

            <filter name="ASP.Net_4.0_32bit" path="C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_filter.dll" enableCache="true" preCondition="runtimeVersionv4.0,bitness32" />

            </isapiFilters>

        </system.webServer>

    </location>


라는 내용이 나온다..

이중 두번째 내용을 삭제하여


<location path="Default Web Site">

        <system.webServer>

            <isapiFilters>

            </isapiFilters>

        </system.webServer>

    </location>


이렇게 변경하고 IIS 를 재시작 하면 해결 된다.



'프로그래밍 > ASP.NET' 카테고리의 다른 글

[ASP.NET] 게시판 페이징  (0) 2010.09.17
Posted by SadDev
|