C#에는 TCP방식에 헬퍼 클래스를 이용할 수도 있고

Socket을 열어서 적용 시켜줄 수도 있다.

그럼 여기서 각각의 NetworkStream을 받아서 적용하는 법을 알아보자

1. Socket

Socket server=null;
Socket client=null;
...
이렇게 정의 되어 있다고 한다면
server 소켓에 연결된 것을 client에 바인딩 해 준다
client = server.Accept();

이렇게 하면 연결이 된 것이다

하면 NetworkStream은 어떻게 쓰느냐?
NetworkStream ns = new NetworkStream(client);
를 해 주면 ns에 대해서 확보를 한다.

SreamWriter나 StreamReader를 이용할 경우 new 스트림 종류(ns) 를 해 주면 적용이 된다.

2. 헬퍼 클래스

TCPListener 를 통하여 연결되었다고 할 경우에

NetworkStream ns =null;

상태에서

ns = client.getStream();

처리를 해 준다음

SreamWriter나 StreamReader를 이용할 경우 new 스트림 종류(ns) 를 해 주면 적용이 된다.

간단하지만.. 약간의 차이점이랄까?
솔직히.. -_- 이거 땀시.. 머리 좀 많이 굴렸다..

왜? -_- 스레드의 생명 주기와 같이 끝나는 시점을.. 몰랐기에..

그냥 MSDN 볼걸... ㅠ_ㅠ

브레이크 포인트 찍어서 정확하게 알아낸게 어딘지.. ㅠ_ㅠ

일단 Stream을 통해서 ReadLine()을 한 것은 바로 제어권이 넘어간다

하지만!!

ReadToEnd()한 것은.. -_-

해당 Stream이 닫혀야지만.. 그 제어권이 넘어갔다..

필자는.. -_- 솔직히 이 두개 똑같은 형식일거라 생각하고 아무 생각없이..

-_- 뭐지.. 하면서 여러 수십번 실행을 해 봤다..

테스트 해 보실 분은 FileStream을 열어서 각각 ReadLine()과 ReadToEnd()

두가지를 적용해 보시면 금방 알아채실 것이다..

-_- 아 글고 딱 보면 알 것이다.

ReadLine()은 한줄 한줄 불러들이지만!!

ReadToEnd()는.. -_- 끝까지~ 다 긁어온다!!
[C#]일본어 인코딩 C# 2009. 4. 7. 18:28
Encoding sjisEnc = Encoding.GetEncoding("Shift_JIS");

처리를 한 후 당겨 쓰면 된다 -_-a

DllImport를 오랜만에 하면서 이래저래 손댔더니 -_-;;

기억 저 멀리에서 -_-..

반갑게 맞이하네;;