na razie prymitywny kontroler w Javie:
public static void main(String[] args) throws InterruptedException {
PrintWriter naSerwer = null;
BufferedReader zSerwera = null;;
Socket socket = null;
final int PORT = 5000;
try {
socket = new Socket("127.0.0.1", PORT);
naSerwer = new PrintWriter(new OutputStreamWriter( socket.getOutputStream() ),true);
zSerwera = new BufferedReader( new InputStreamReader( socket.getInputStream()));
DataOutputStream dataOutputStream = null;
dataOutputStream = new DataOutputStream(socket.getOutputStream());
while(true) {
dataOutputStream.writeChars("test");
dataOutputStream.flush();
Thread.sleep(300);
}
} catch (IOException e) {
e.printStackTrace();
}
}
Automat w C:
int main() {
WSADATA wsaData;
int listenFd;
if (WSAStartup(MAKEWORD(1,1), &wsaData) == SOCKET_ERROR) {
printf ("Error initialising WSA.\n");
return -1;
}
int fd_socket;
struct sockaddr_in my_addr;
struct sockaddr_in their_addr;
char yes = 1;
if( (fd_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) {
perror("socket");
exit(1);
}
if((setsockopt(fd_socket, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(int))) == -1) {
perror("setsockopt");
exit(1);
}
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(MY_PORT);
my_addr.sin_addr.s_addr = inet_addr(LOCAL_IP);
memset(&(my_addr.sin_zero), '\0', 8);
if((bind(fd_socket, (struct sockaddr *)&my_addr, sizeof(my_addr))) == -1) {
perror("bind");
exit(1);
}
if((listen(fd_socket, BACKLOG)) == -1) {
perror("listen");
exit(1);
}
size_t sin_size = sizeof(struct sockaddr);
int socket;
if((socket = accept(fd_socket, (struct sockaddr *)&their_addr, &sin_size)) == -1) {
perror("accept");
exit(1);
} else {
printf("Server got connection from: %s, socket: %d\n", inet_ntoa(their_addr.sin_addr), socket);
}
char buffor[24];
size_t buff_size = sizeof(buffor);
while(1) {
int bytes = recv(socket, buffor, buff_size, 0);
if(bytes > 0) {
// //dekoduj_komunikat(buffor);
printf("%s", buffor);
}
}
return 0;
}