Geral
Programação Orientada a Objetos COM230
Semana 7
0

Questão

O termo “programação de soquete” refere-se a escrever programas executados em vários computadores, nos quais os dispositivos estão todos conectados mutualmente usando uma rede. Existem dois protocolos de comunicação que podemos usar para programação de soquete: User Datagram Protocol (UDP) e Transfer Control Protocol (TCP).

No contexto de Sockets, avalie as afirmativas a seguir.


I. As classes Socket e ServerSocket são usadas para programação de Socket não orientada à conexão, e as classes DatagramSocket e DatagramPacket são usadas para programação de Socket com conexão.

II. O servidor constrói um objeto ServerSocket para especificar o número da porta na qual a comunicação ocorrerá. Métodos de tratamento de exceção são usados sempre que ocorre um erro de E/S.

III. Se a conexão for bem-sucedida, o cliente e o servidor poderão se comunicar usando fluxos de entrada/saída. As classes de soquete do cliente e do servidor são responsáveis pelos fluxos de E/S.

IV. Objetivando um melhor desempenho em todo processo, o Socket java precisa rodar assincronamente, ou seja, independentemente de protocolo, não aguardará resposta do servidor para a mensagem.


Está correto o que se afirma em:

A)

I, III e IV, apenas.

B)

II e III, apenas.

C)

I e III, apenas.

D)

I, II e IV, apenas.

E)

I e II, apenas.

function vote(questaoId, value) { window.location.href = "/accounts/login/?next=/questao/3710/"; return; fetch(`/vote/questao/${questaoId}/`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-CSRFToken': 'TPm0jVu43DvuiUF7ZJeSwwllcEdhexFTlogL1ORI1eLeO6N6L5KDb03kHleMXR3L' }, body: JSON.stringify({ value: value }) }) .then(response => response.json()) .then(data => { if (data.success) { document.getElementById(`score-${questaoId}`).textContent = data.score; const upBtn = document.querySelector(`button[onclick="vote(${questaoId}, 1)"]`); const downBtn = document.querySelector(`button[onclick="vote(${questaoId}, -1)"]`); upBtn.classList.remove('active-up'); downBtn.classList.remove('active-down'); if (data.user_vote === 1) upBtn.classList.add('active-up'); if (data.user_vote === -1) downBtn.classList.add('active-down'); } }); }