IRC 봇 (아직)을 쓰고 있으며 몇 달 동안 여기 저기에 난처 해했습니다. 데이터를 받아서 인쇄하는 간단한 함수입니다. 항상 작동하지는 않습니다. 예를 들어, 봇이 서버에 연결하면 서버가 MoTD를 보내고 여기서이 함수가 인쇄를 시도 할 때 맨 끝에 보통 두 줄이 잘립니다. 여기 소켓에서 들어오는대로 터미널로 데이터를 인쇄하는 방법
int mainLoop(int socketDescriptor)
{
int bytesReceived = 0, i;
char workingBuffer[RECVBUFF];
do
{
for (i = 0; i < RECVBUFF; i += bytesReceived)
{
bytesReceived = recv(
socketDescriptor,
workingBuffer + i,
RECVBUFF - i,
0);
}
for (i = 0; i < RECVBUFF; ++i)
printf("%c", workingBuffer[i]);
}
while(1);
return 0;
}
내 프로그램의 출력 및 irssi 같은 클라이언트의 출력을 보여주는 스크린 샷입니다. 내 프로그램을 볼 수 있듯이
는
단지 마지막 덩어리에 포장 마차 인쇄를 중지합니다. 어떻게 해결할 수 있습니까?
을 스크린 샷은 텍스트 만 표시합니다. 예쁜 텍스트 대신 원본 텍스트를 게시 할 가능성이 있습니까? 사진? snip 지시자를 사용하여 관리 가능한 3 줄 정도의 MotD를 스니핑합니다. – Deduplicator
터미널 텍스트를 _ 텍스트로 표시하는 것이 그림으로 표시하는 것보다 유용합니다. – chux