본문 바로가기
반응형

C#10

C# 소켓 억셉트 Socket Asynchronous Accept 초간단 소스 using System; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; namespace Network_Async_Test { class Program { static void Main(string[] args) { Socket aSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); aSocket.Bind(new IPEndPoint(0, 5000)); aSocket.Listen(5); aSocket.BeginAccept(new AsyncCallback(Jue_Listen), aSocket); whi.. 2021. 9. 15.
C# Console 비동기 입력 ReadLine ReadKey Asynchronous input 초간단 소스 using System; using System.Threading; using System.Threading.Tasks; namespace Async_console_test { class Program { static void TempAction() { string Temp = Console.ReadLine(); Console.WriteLine("입력함 : [{0}]", Temp); Task.Factory.StartNew(TempAction); } static void Main(string[] args) { Task.Factory.StartNew(TempAction); while (true) { Console.Write("."); Thread.Sleep(500); } } } } Tested By VS20.. 2021. 9. 15.
C# Packet Capture Programming #4 - 패킷 출력 HexaView using System; using SharpPcap; using HexaViewer; namespace Net_Packet001 { class Program { static void Main(string[] args) { string NIC_Name = "Wi-Fi"; ICaptureDevice PcapDevice = null; if (1 > CaptureDeviceList.Instance.Count) { Console.WriteLine("패킷을 캡쳐할 수 있는 장치가 존재하지 않아 종료합니다..."); return; } foreach (ICaptureDevice NIC in CaptureDeviceList.Instance) { string FriendName = NIC.ToString().Split(.. 2021. 9. 7.
C# Packet Capture Programming #3 - 패킷 캡쳐 GetNextPacket using System; using SharpPcap; using HexaViewer; namespace Net_Packet001 { class Program { static void Main(string[] args) { string NIC_Name = "Wi-Fi"; ICaptureDevice PcapDevice = null; if (1 > CaptureDeviceList.Instance.Count) { Console.WriteLine("패킷을 캡쳐할 수 있는 장치가 존재하지 않아 종료합니다..."); return; } foreach (ICaptureDevice NIC in CaptureDeviceList.Instance) { string FriendName = NIC.ToString().Split(.. 2021. 9. 7.
static HexaViewer Class 구현 - ArraySegment 응용 using System; namespace HexaViewer { public class HexaView { static void PrintLine(char Char, ushort Count) { for(int Temp = 0; Temp < Count; ++Temp) { Console.Write(Char); } Console.WriteLine(); } static void PrintHead(char Line1, char Line2, ushort Count) { PrintLine(Line1, Count); PrintLine(Line2, Count); Console.Write(" ADDRESS "); for (int iCount = 0; iCount < 16; ++iCount) { Console.Write(.. 2021. 9. 7.
C# Packet Capture Programming #2 - 캡쳐 장치 선정 ICaptureDevice using System; using SharpPcap; namespace Net_Packet001 { class Program { static void Main(string[] args) { string NIC_Name = "Wi-Fi"; ICaptureDevice PcapDevice = null; if (1 > CaptureDeviceList.Instance.Count) { Console.WriteLine("패킷을 캡쳐할 수 있는 장치 존재하지 않아 종료합니다..."); return; } foreach (ICaptureDevice NIC in CaptureDeviceList.Instance) { string FriendName = NIC.ToString().Split('\n')[1]; FriendNam.. 2021. 9. 1.
C# Packet Capture Programming #1 먼저 WinPcap 라이브러리를 설치해야 합니다. https://www.winpcap.org/install/default.htm 어려우신 분들은 아래 캡쳐를 가이드로 활용해 보세요. C#용 래퍼 라이브러리를 설치합니다. https://sourceforge.net/projects/sharppcap/ 어려우신 분들은 아래 캡쳐를 가이드로 활용해 보세요. 이렇게 작성해 보니 NIC ( 혹은 NIC.ToString() )를 바로 출력하는 것은 너무 많은 정보를 출력합니다. C# string 클래스의 메소드를 활용해 FriendName만 잘라서 출력해 봅니다. 1차 글은 여기서 완료합니다..... C#용 래퍼 라이브러리 정보는 아래 링크를 참고하세요. https://sourceforge.net/p/sharppca.. 2021. 9. 1.
예외처리 1 : try catch 문법 class Program { static void Main(string[] args) { int iNum; while (true) { try { Console.WriteLine("정수를 입력하세요."); iNum = int.Parse(Console.ReadLine()); Console.WriteLine("정수를 입력했습니다."); break; } catch (Exception) { Console.WriteLine("정수를 입력하지 않았습니다."); } } } } 2021. 6. 10.
포인터 사용 C# Pointer unsafe C# 컴파일러는 기본적으로 C 타입의 포인터 사용을 막아 놓았습니다. 포인터의 사용은 안정적이지 못하다는 생각에서 기인했다고 짐작해 보았습니다.(관련 키워드가 unsafe임을 가만해서 추측해 봤습니다.) 뭐... 만든사람 마음이니깐요. 먼저 아래와 같은 소스를 준비 합니다. static unsafe void Main(string[] args) { int iNum = 100; int* iPointer = &iNum; Console.WriteLine(*iPointer); } 우선적으로 포인터를 사용하려면 unsafe 키워드를 사용할 메서드 앞에 붙여 주어야 합니다. 그 다음 프로젝트 옵션의 빌드 옵션에서 unsafe 키워드 사용을 허용해야 합니다. 아래 그림을 참조하세요. 실행한 결과는 아래와 같습니다. 커.. 2021. 4. 29.
728x90
반응형