이재호 님이 쓰신 글 :
: 인디에 있는 idtcpserver를 이용해서 서버를 가동시키고
:
: 클라이언트를 만들었는데 클라이언트에서 글자를 쓰면
:
: 서버에도 글자가 나오게 하는게 idtcpserver요걸로는 불가능한건가요??
:
: serversocket으로만 해야 하나요???
// Indy의 TCPServer의 OnExecute 이벤트입니다.
void __fastcall Tfrm_Main::IdTCPServer1Execute(TIdPeerThread *AThread)
{
TIdTCPConnection *Socket = AThread->Connection;
// 스택에서 소켓에 들어온 글자가 얼만큼인지 알아오자.
Socket->ReadFromStack( true, 1000, false );
int bsize = 0;
bsize = Socket->InputBuffer->Size;
char* _Buff;
// 소켓버퍼 들어 온거 있으면 처리 해주자.
if ( bsize > 0 )
{
_Buff = new char[ bsize ];
ZeroMemory( _Buff, bsize );
Socket->ReadBuffer( _Buff, bsize );
}
else
{
return;
}
// 소켓 내용 처리 ...
.
.
.
.
delete []_Buff;
}
위 소스는 정해지지 않은 길이의 데이터를 받아 들이는 소스입니다.
ReadBuffer() 뿐만 아니라 읽어 들이는 함수들은 ReadLn() ReadString()등등 많이 있습니다.
예전 인디는 안써봐서 저도 모르겠고 .. 저 소스는 인디 9.X 버전입니다.
자세한건 도움말을 보시거나 검색 하면 많이 나올겁니다. ^^;
|