1
저는 C++ 서버 및 Java 클라이언트로 채팅 프로그램을 작성합니다.
이다 클라이언트로부터 메시지를 수신 한 책임이있는 함수의 코드 :
는void *recieve(void* *v)
{
while (true)
{
bzero(buffer, 256);
n = read(socketfd, buffer, 256);
if (n < 0)
exit(1);
printf("Client: %s", buffer);
}
}
서버에 메시지를 보낼 타르 책임이있는 함수의 코드는 다음과 같습니다
ps.println(msg);
곳 ps는 인쇄 스트림입니다.
서버로 메시지를 보내면 "hello world"라고 말하면 C++ 서버가 다음을 인쇄합니다. "Client : hello worldClient".
누군가 나를 도와 주시면 감사하겠습니다. (내 영어가 좋지 않다면 사과드립니다.) 감사합니다!
읽은 바이트 수만 쓰고 쓰려고 했습니까? 그리고 Joachim이 말했듯이, 널 종료 바이트 x를 잊지 말아야합니다. x) – Naliwe
그런데'read' 호출에 대한 에러 검사에서 중요한 경우를 놓칩니다. 제대로 연결 해제를 처리하지 못합니다. –
@JoachimPileborg는 256 바이트 미만인 경우 null 종결 자 (null terminator)가 있는지 확인합니다 (http://man7.org/linux/man-pages/man3/bzero.3.html) [bzero()]] 받은? – Christophe