아..제가실수했네여 ..
1번 서버 이후에 데이터를 전송할때
orm_NWC3000->ServerSocket4->Socket->Connections[1]->SendBuf(TxData2, len);
Connections[1]로 데이터를 전송해서...에러가 났던거였습니다...
아그럼 여기서 질문 !
Connections[0] 이상의 것들은..언제 어떻게 쓰이는건가요 ?
Connections[1]과같은것들이요 ..
----------------------------------------
우선 많은 도움 주셔서 감사합니다...
코드는 아래와 같습니다...
ServerSocket2번부터 연결이안됩니다..ㅜㅜ
ServerSocket1은 연결이 정상적으로 됩니다.
2번을 연결을 시도할 경우 'List index out of bounds(1)
3번에 연결을 시도할 경우 'List index out of bounds(2)
4번에 연결을 시도할 경우 'List index out of bounds(3)
1번이 연결되어있지 않은 상황에서도 위와같은 에러 메세지가 나옵니다 ..
void __fastcall TForm_NWC3000::ServerSocket1ClientConnect(TObject *Sender,
TCustomWinSocket *Socket)
{
ServerDisConnect1->Enabled=true; // 접속해지버튼 활성화
if(tflag.tcpflag1 != TCPACTIVE) { // 1ch연결되어있지 않으면
L_Connect1->Caption = "연결중...";
TcpConnectingFlag1 = 1;
}
sflag.MonFlag1 = 0; // 모니터링 해지
BtnMonitoring1->Caption = "모니터링 시작";
tflag.tcpflag1 = TCPACTIVE; // ch1 연결되었음을 알리는 flag
ConnectFlag1 = 1;
}
4채널 모두 이와같은 코드로 되어있습니다.
그리고 타이머에서
if(ConnectMathod == SERVER) {
if(!(ServerSocket1->Active)) { // 접속이 해지되면 활성화시킨다 ..
ServerSocket1->Active=true;
}
if(!(ServerSocket2->Active)) {
ServerSocket2->Active=true;
}
if(!(ServerSocket3->Active)) {
ServerSocket3->Active=true;
}
if(!(ServerSocket4->Active)) {
ServerSocket4->Active=true;
}
}
접속방식이 서버이고, 해당 서버가 활성화 되어있지 않은경우 활성화 시킵니다 .. 이부분은 문제없는걸로 파악됩니다.
문제가뭔지..도저히모르겠습니다 ㅜㅜ 도와주세요 ..
송신영 님이 쓰신 글 :
: 작성하신 코드에 버그가 있는것같습니다.
: 해당 error는 할당된 list 수를 초과하여 접근할 때 발생합니다.
: 코드를 올려 보시거나 한 번 잘 확인해보세요.
:
: 박태준 님이 쓰신 글 :
: : 우선답변 감사합니다.!!
: :
: : 제가 지금 한 프로그램에서 4개의 서버를 운용해야하는데...
: :
: : 서버 1, 2, 3, 4 이렇게요.
: :
: : 각 서버의 포트를
: : server1 포트 9000
: : server2 포트 8000
: : server3 포트 7000
: : server4 포트 6000
: :
: : 이렇게 지정해놨습니다...
: :
: : 근데..한개의 서버는 정상적으로 연결이 잘되는데
: :
: : 1개연결이후 2번째 서버를 연결하려고하면 에러가 발생합니다...
: :
: : 'List index out of bounds(1) 이런..에러가 뜨면서 멈춰버립니다..
: :
: : 도움 부탁드립니다.. ㅜㅜ
: :
: : 송신영 님이 쓰신 글 :
: : : Port 문의였군요.. IP인줄알고..
: : : Port 번호는 특정 포트를 바로 읽어오지는 못할거구요.
: : : 원하는 포트 번호를 socket 으로 열어서 열리면 해당 Port가 사용 중인 것이고
: : : 안열리면 미사용 이거나 블락 상태인 것이니 이런식으로 모든 Port를 열어봐야 알 수 있을 겁니다.
: : : 구글에서 local port scan c++ 으로 검색하면 참고할 만한 자료가 많이 나올겁니다.
: : :
: : :
http://www.codeproject.com/KB/applications/wnetstat.aspx?df=100&forumid=15546&exp=0&select=617495
: : :
: : : 박태준 님이 쓰신 글 :
: : : : 우선 답변 감사합니다.
: : : :
: : : : 검색을 해봐도..찾기가 힘들더라구요 ㅜㅜㅜㅜ
: : : :
: : : : 아래 링크내용처럼 하면 IP주소는 읽어올수 있는대
: : : :
: : : : 그럼..포트번호는 어떻게 읽어오나요.. ???
: : : :
: : : : 송신영 님이 쓰신 글 :
: : : : : 선 검색 후 질문..
: : : : : 아래 링크 참고하세요.
: : : : :
: : : : :
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_faq&no=11
: : : : :
: : : : : 만약 PC에 설치된 LAN 카드가 하나가 아니고 여러개 인 경우 아래와 같이 얻어올 수 있습니다.
: : : : :
: : : : : int i = 0;
: : : : : while(hos->h_addr_list[i] != NULL)
: : : : : {
: : : : : char *addr = *(hos->h_addr_list[i]);
: : : : : //......
: : : : : i++;
: : : : : }
: : : : :
: : : : :
: : : : : 박태준 님이 쓰신 글 :
: : : : : : 안녕하세요 오늘도 삽질중인..초보개발자입니다.. ㅜㅜ
: : : : : :
: : : : : : 다름이 아니라
: : : : : :
: : : : : : 현재 PC의 IP주소와 포트번호를 읽어오고싶은데...
: : : : : :
: : : : : : 어떻게해야하죠.. ?
: : : : : :
: : : : : : 답변 부탁드립니다. !