(VB.NET) 1:1 Multiport connection

Basic MultiPort :
https://it-jerryfamily.tistory.com/entry/Program-C-multiple-port%EB%A1%9C-%EC%9E%91%EC%97%85%ED%95%98%EA%B8%B0?category=611730
Using socket with asynchronus method :
https://www.youtube.com/watch?v=cG5q4XdYIUI&t=1289s
AutoScroll : https://www.youtube.com/watch?v=NCBpd3CNRIU

위의 링크에 있는 것들을 조합해서 1:1 Multiport connection을 한 것입니다.
Server / Client side가 있는데 몇 가지 아직 몇 가지 문제점이 있어서 공부를 더 해야겠네요~ ㅠㅠ

문법이 생소하기도 하고 새로운 메쏘드도 너무 많아서 99%는 베껴쓰고 1% 정도만 되는데로 고쳐가면서 해결했어요 ~ 머리가 나쁘니 몸이 고생이네요~~

이제 이걸로 사내 장비에 이더넷 통신을 해서 데이터 기록이 되는지 확인하고, DataGridBox를 추가해서 엑셀로 기록할 수 있게 하면, 꽤나 편한 프로그램이 되겠네요~ ㅎㅎ 이렇게 하는게 맞는지 모르겠는데 일단 해봐야겠네요~  해놓고 매뉴얼을 보니 이게 멀티포트가 아닌가.. Modbus란 것과 헷갈린건가 .. 아직은 잘 모르겠네요~~
https://web-material3.yokogawa.com/IMMV1000-17E_020.pdf



https://drive.google.com/open?id=14aub3FWghQHV3mJt4f2aUAw2ySrAfLl6

(참고사항)                 
(ServerSocket.vb : 49-53, method : serverAccept() )

socket(i).BeginAccept(AddressOf AcceptedCallBack, socket(i))
다른 예제에서는 두번째 변수가 null로 되어 있는데, 그런 예제는 다른 object가 아니고 클래스 내에 있는 하나의 socket을 가지고 처리를 하기 때문인 것? 같네요.
제가 수정한 클래스 ServerSocket에는 ServerSocket내에 갯수를 동적할당을 해주는데, 이 경우 어떤 오브젝트를 가지고 BeginAccept를 실행할 것인지 지정이 필요하기 때문에 socket(i)로 해줘야 하는 듯 합니다. 정확히는 모르겠는데 이 부분이 문제가 되서 꽤나 많이 고생했네요 ~ 정확히 알게되면 수정필요

(MainForm.vb : 32-36, method : msg(~~~))
Textbox1이 계속 처음으로 Scroll 되길래 위 부분을 추가하니까 되더라고요~
그러면 추가된 행만큼 자동으로 Scroll이 됩니다.

(문제점)
1. Connect test가 2회 이상 실행됨 (이미 연결된 상태라면 Server 또는 Client 쪽을 막아야할 거 같음)
2. 다른 예제에서는 Thread를 사용하는 부분이 있는데 개념 이해를 못해서 그냥 빼 버렸습니다. 이 부분을 이해해야 1:n 통신이 가능해지는듯 하네요~

댓글

이 블로그의 인기 게시물

(Node.js) XLSX로 결과 출력하기 / 모듈 디자인 Exporting / Node.js modular design

(VBA) 009 - 닫힌 파일에서 데이터 읽어오기 (ExecuteExcel4Macro)

(Node.js) EUC-KR을 Cheerio - Iconv-lite로 불러올 때