Использую Windows Sockets 2.
Код сервера:
...
void inputMessage(char* buffer, int size)
{
printf("Enter message: ");
fgets(buffer, size, stdin);
buffer[strlen(buffer) - 1] = '\0'; // удалить '\n'
}
int sendMessage(SOCKET ConnectedSocket)
{
char buffer[MESSAGE_MAXLEN + 1]; // + 1 для '\n'
int error = 0;
inputMessage(buffer, MESSAGE_MAXLEN + 1); // здесь нажмём Ctrl + C
if (send(ConnectedSocket, buffer, strlen(buffer) + 1, 0) == SOCKET_ERROR)
{
error = WSAGetLastError();
printf("send failed: %d\n", error);
}
return error;
}
...
Код клиента:
...
int receiveMessage(SOCKET ClientSocket)
{
char buffer[MESSAGE_MAXLEN];
int error = 0;
puts("Waiting server response...");
if (recv(ClientSocket, buffer, MESSAGE_MAXLEN, 0) != SOCKET_ERROR)
{
// recv не возвращает ошибку
printf("server response: %s\n", buffer); // напечатает кракозябры
}
else
{
error = WSAGetLastError();
printf("recv failed: %d\n", error);
}
return error;
}
...