You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

72 lines
1.8 KiB

% SERVER Write a message over the specified port
%
% Usage - server(message, output_port, number_of_retries)
function server(port, number_of_retries)
import java.net.ServerSocket
import java.io.*
if (nargin < 2)
number_of_retries = 2; % set to -1 for infinite
end
retry = 0;
server_socket = [];
output_socket = [];
port
while true
retry = retry + 1;
try
if ((number_of_retries > 0) && (retry > number_of_retries))
fprintf(1, 'Too many retries\n');
break;
end
fprintf(1, ['Try %d waiting for client to connect to this ' ...
'host on port : %d\n'], retry, port);
% wait for 1 second for client to connect server socket
server_socket = ServerSocket(port);
server_socket.setSoTimeout(10000);
fprintf(1, 'Waiting for client to connect\n');
output_socket = server_socket.accept;
fprintf(1, 'Client connected\n');
input_stream = output_socket.getInputStream;
%d_output_stream = DataOutputStream(output_stream);
for i=1:10
% read data from the socket - wait a short time first
pause(0.5);
bytes_available = input_stream.available;
fprintf(1, 'Reading %d bytes\n', bytes_available);
end
% clean up
server_socket.close;
output_socket.close;
break;
catch me
me
if ~isempty(server_socket)
server_socket.close
end
if ~isempty(output_socket)
output_socket.close
end
% pause before retrying
pause(1);
end
end
end