mirror of
https://github.com/michaelrausch/Party-Parrots-At-Sea.git
synced 2026-05-09 06:18:44 +00:00
63958a6717
Still needs reengineering to change socket channels for sending to ouput stream in the message class. Only client to server "working". #story[1047] #pair[hyi25, wmu16] #pair[cir27, zyt10]
61 lines
1.4 KiB
Java
61 lines
1.4 KiB
Java
package seng302.server;
|
|
|
|
import seng302.server.messages.Message;
|
|
|
|
import java.io.DataOutputStream;
|
|
import java.io.IOException;
|
|
import java.net.InetSocketAddress;
|
|
import java.net.Socket;
|
|
import java.nio.channels.Channels;
|
|
import java.nio.channels.ServerSocketChannel;
|
|
import java.nio.channels.SocketChannel;
|
|
import java.nio.channels.WritableByteChannel;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
public class StreamingServerSocket {
|
|
private ServerSocketChannel socket;
|
|
private SocketChannel client;
|
|
private short seqNum;
|
|
private boolean isServerStarted;
|
|
|
|
public StreamingServerSocket(int port) throws IOException{
|
|
socket = ServerSocketChannel.open();
|
|
socket.socket().bind(new InetSocketAddress("localhost", port));
|
|
//socket.setSoTimeout(10000);
|
|
seqNum = 0;
|
|
isServerStarted = false;
|
|
}
|
|
|
|
public void start(){
|
|
try {
|
|
client = socket.accept();
|
|
} catch (IOException e) {
|
|
e.getMessage();
|
|
}
|
|
if (client.socket() == null){
|
|
start();
|
|
}
|
|
else{
|
|
isServerStarted = true;
|
|
}
|
|
}
|
|
|
|
public void send(Message message) throws IOException{
|
|
if (client == null){
|
|
return;
|
|
|
|
}
|
|
message.send(client);
|
|
seqNum++;
|
|
}
|
|
|
|
public short getSequenceNumber(){
|
|
return seqNum;
|
|
}
|
|
|
|
public boolean isStarted(){
|
|
return isServerStarted;
|
|
}
|
|
}
|