C# 24

C#으로 다중 접속 Tcp 서버 만들기

안녕하세요. 워시기입니다.오늘은 지난 포스팅에서 작성한 TCP 서버 / 클라이언트를 조금더 심화해서 작성을 해보도록 하겠습니다.지난번에는 단순하게 TcpListener와 TcpClient, NetworkStream을 통해 에코서버와 클라이언트를 만들었는데1:1의 통신이라면 크게 문제가 없겠지만 서버에 다수의 접속자가 발생하게 된다면 이전의 작업으로는 대응할 수 없을 것 입니다.이번 포스팅에서는 다수의 접속을 처리할 수 있도록 작성을 하도록 하겠습니다.서버가 실행을 하면 TcpListener는 접속을 기다리고 있습니다.대기하고 있다가 클라이언트의 접속이 되면 TcpClient객체를 반환하게 됩니다.이 객체를 CommInfo(제가 클라이언트 객체를 관리하기 위해 클래스를 만들었습니다.)라는 클래스에 관리번호..

개발 2024.12.16

C#으로 하는 TCP/IP 통신 -2-

안녕하세요. 워시기 입니다.한동한 포스팅을 못하였네요.이번 포스팅에서는 코드를 한번 작성해 보겠습니다. TCP/IP 통신을 하기위해서는 Socket 클래스를 불러오는 방법이 있고 또는 Helper 클래스인 TcpClient, TcpListener, UdpClient 클래스가 있습니다.저는 보통  Helper 클래스를 많이 씁니다. 예전에는 Socket 클래스를 쓰긴 했는데 TcpClient 클래스 쓰다보니 다른것 못쓰겠네요. 상황에 따라서 쓰면 됩니다~일단 간단한 에코 서버를 만들고 클라이언트 서버를 만들고 이후 조금더 고도화 작업을 해보겠습니다. 1.서버작업새 프로젝트 만드시고 저는 윈폼으로 만들겠습니다.Form1에 Textbox 만드시고 Textbox 이름은 Tbox_Log라고 변경해주세요.우측 상단..

카테고리 없음 2024.12.07

MAUI NU1100 Error 대처

안녕하세요. 오늘은 MAUI 실행시 NU1100 에러에 대해 살펴보겠습니다..Net 9.0에는 MAUI에 대한 많은 부분이 개선이 되었다고 합니다.이제 좀 쓸만하졌다는 평이 있던데 그래서 한번 사용해보고자 .Net 9.0 설치하고 Visual Studio도 기존 17.8에서 17.12로 업데이트하였습니다.실행을 해보려고 하는데 두둥~ NU1100이라는 에러가 가득하게 나오네요. 노트북에서는 에러가 나는데 데탑에서는 에러가 안나네요. 이상하네요. ㅎㅎ여튼 이게 모지하고 검색을 해보니 https://learn.microsoft.com/ko-kr/nuget/reference/errors-and-warnings/nu1100 NuGet 오류 NU1100NU1100 오류 코드learn.microsoft.com아래의..

개발 2024.11.30

.net 9.0 migration [.net 9.0 업그레이드]

안녕하세요. .net 9.0이 Preview에서 9.0 정식버전으로 얼마전에 올라왔네요.기존에 .net 8.0에서 .net 9.0으로 전환하는 방법에 대해 포스팅 하도록 하겠습니다.ms는 현재 짝수 버전은 LTS로 장기간 지원하고 홀수 버전은 STS로 표준 기간(18개월) 지원을 하고 있습니다.개발시 참고하시면 좋겠네요.혹시 기존 작업코드가 있다면 업데이트는 신중하게 하세요~https://dotnet.microsoft.com/ko-kr/platform/support/policy/dotnet-core .NET 및 .NET Core 공식 지원 정책런타임, ASP.NET Core 및 Entity Framework Core 비롯한 여러 기술을 참조하는 .NET 및 .NET Core 지원 정책에 대해 알아봅니다...

개발 2024.11.29

C#으로 하는 Thread

안녕하세요. 오늘은 Thread 구현에 대한 포스팅을 하도록 하겠습니다.프로그램을 작성하다보면 오랜기간 하나의 프로세스를 처리하게 작성을 하게 될 수 있습니다.이 경우 UI 프로그램일때는 로직스레드가 길게 돌아가면서 UI가 멈춘것처럼 얼어버리는 경우가 있습니다.참으로 난감해지는 경우가 생기네요.이것은 스래드 처리를 안해줘서 생기는 경우 입니다.C#에서 Winform 프로그램을 만들어 실행을 하면 OS와는 별개로 자체적으로 폼도 잘 움직이고 내부 버튼이나 로직이 잘 돌아갑니다. 이 이유는 현재의 프로그램또한 OS라는 메인에서 별개의 Thread로 돌아가고 있기 때문입니다.프로그래이 실행되면 OS로 부터 Process를 할당받아 돌아갑니다.윈폼을 하다보면 Program.cs라는 클래스를 보게 될 것입니다.아..

개발 2024.11.23

C#으로 하는 TCP/IP 통신 -1-

안녕하세요. 이번 포스팅에서는 C#으로 하는 TCP/IP 통신에 대해 정리해볼까 합니다. 통신 프로그램은 정말 중요한 부분인것 같습니다. 장비자체에 UI 인터페이스가 있어 사용자가 제어하는 장치도 있지만 외부와 통신라인으로만 연결하여 원격으로 제어하는 장비에는 통신이라는 요소가 정말 중요합니다.그리고 통신을 하기 위한 다양한 산업용 프로토콜이 있습니다.정말 다양한 프로코톨을 익힐 수록 도움이 많이 되는것 같습니다. 장비와 통신을 해야 하는데 산업용 프로코톨은 쉽게 접해보지 않다보니 처음에 많이 힘들 수 있습니다.이번 포스팅은 네트워크 프로그램을 다룬다면 필수 요소인 TCP/IP를 C#으로 구현해보겠습니다. 일단 통신 프로그램을 작성하고자 한다면 OSI 7계층은 익숙해져야 합니다.https://namu.w..

개발 2024.11.22

ASP.net core SignalR 해보면서

최근에 ASP.net core에서 SignalR이라는 기술을 접해보았습니다.좋아하고 많이 다루는 언어는 C#인데 주로 Winform의 환경만 다루다 보니 확장된 기술을 사용하고 싶다는 열망이 가득했었습니다.통신 서버는 주로 장비와 연결하기 위한 서버라서  콘솔환경에서 Tcp/IP 서버 프로그램 만들고 클라이언트에서 Winform으로 데이타를 수신해서 사용했는데 웹기술을 한번 익히고는 싶었습니다. 그러던중 Blazor라는 기술이 나와서 조금씩은 익히고는 있었습니다. Blazor 보면서 SignalR이라는 기술이 있는데SignalR이라는것이 무엇인가? 감이 잘 안왔는데 최근에 수업을 들으면서 공부할 수 있었습니다.https://learn.microsoft.com/ko-kr/aspnet/core/signalr..

개발 2024.11.21

C# 으로 하는 RS-232 -2-

Visual Studio를 이용하여 작성을 시작하겠습니다.  프로젝트 실행하시고 Window Forms 앱(.NET Framework) 선택하고 이름 입력하고 [확인] 버튼 누르면 프로젝트가 생성됩니다. C#에서는 도구 상자에서 SerialPort를 가져오는 방법과 System.IO.Port를 기입하여 관련 네임스페이스에 정의된 내용들을 가져오는 방법이 있습니다.저는 System.IO.Port를 통해 작성하도록 하겠습니다.Using문을 통해 해당 네임스페이스를 등록하도록 하겠습니다. Serial Port를 열기 위해 가장 중요한 파라미터는포트 번호buadrate : 전송 속도Data BitParity BitStop Bit위의 파라미터가 설정되어 객체를 인스턴스하면 통신이 됩니다. 대략적으로 UI 는 다음..

개발 2024.11.20

C#으로 하는 RS-232 -1-

안녕하세요~ 이번에는 c#으로 하는 RS-232통신에 대해 알아보겠습니다. RS-232는Recommended Standard 232는 1960년에 도입된 표준의 하나로 직렬방식의 인테이스의 하나이다.일반적으로 직렬 포트라고 불리기도 한다. 핀 정의  : (1)DCD  : Data Carrier Detect               (2)RXD  : Receive Data               (3)TXD  : Transmit Data                (4)DTR  : Data Terminal Ready               (5)GND  : Ground               (6)DSR   : Data Set Ready               (7)RTS    : Ready to ..

개발 2024.11.19

C#으로 하는 GPIB 통신 Fin

이제 GPIB로 하는 통신 프로그램 작업은 완료가 되었습니다.2개의 장비를 연결하여 테스트를 하면서 C#으로 하는 GPIB 통신에 대한 포스팅을 마무리 하도록 하겠습니다. 참 혹시나 모르시는 분도 계실듯 해서 GPIB 케이블 연결부연설명을 드리자면 케이블의 생김새는 다음과 같습니다.GPIB 통신을 지원하는 장비에는 GPIB 포트가 있습니다. 대부분 계측기가 다수의 장비를 GPIB 케이블로 연결을 해야해서인지 GPIB 포트에 바로 GPIB-USB 컨버터를 연결하기 어려운 장비가 많이 있습니다.  보통 2개의 장비를 연결한다고 할때 계측기 하나는 위와 같이 연결하고 다른 하나는 아래와 같이 연결하면 두 계측기가 하나의 통신라인으로 연결이 됩니다.  보통 계측기 연결시 별모양과 같이 가운데서 가지처럼 연결하는..

개발 2024.11.18
반응형