Сервер
import java.net.*;
import java.io.*;
import java.util.*;
import javax.net.ssl.*;
import javax.net.*;
class Test{
public static void main(String[] args){
try{
SSLContext context = SSLContext.getInstance("TLSv1.2");
context.init(null,null,null);
SSLServerSocketFactory serverSocketFactory = context.getServerSocketFactory();
SSLServerSocket server = (SSLServerSocket)serverSocketFactory.createServerSocket(1024);
server.setEnabledCipherSuites(server.getSupportedCipherSuites());
SSLSocket socket = (SSLSocket)server.accept();
DataInputStream in = new DataInputStream(socket.getInputStream());
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
System.out.println(in.readInt());
}catch(Exception e){e.printStackTrace();}
}
}
Клиент
import java.net.*;
import java.io.*;
import java.util.*;
import javax.net.ssl.*;
import javax.net.*;
class Test2{
public static void main(String[] args){
try{
SSLContext context = SSLContext.getInstance("TLSv1.2");
context.init(null,null,null);
SSLSocketFactory socketFactory = context.getSocketFactory();
SSLSocket socket = (SSLSocket)socketFactory.createSocket("localhost", 1024);
socket.setEnabledCipherSuites(socket.getSupportedCipherSuites());
DataInputStream in = new DataInputStream(socket.getInputStream());
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
out.writeInt(1337);
}catch(Exception e){e.printStackTrace();}
}
}
server.setEnabledCipherSuites (server.getSupportedCipherSuites ()); socket.setEnabledCipherSuites (socket.getSupportedCipherSuites ()); [/ д2]
Существует много превосходного материала, имеющегося в сети, после того как Вы входите в канавку, но ссылки ниже являются хорошими начальными точками (IMO) (те, я использовал).
Программирование с Ограничениями: Введение - (Веб-сайт курса)
Программирование с Ограничениями: Введение - (книга Google)
Руководство Онлайн по Программированию с использованием ограничительного языка
Возможно, можно взглянуть на вводное курс мысль в Саарландском университете о программировании с использованием ограничительного языка. Они не используют mozart в качестве сказанный dr_pepper, но Gecode. Gecode является последующим языком mozart, реализованного частично теми же людьми.
Я рекомендую начать с mozart. Это - язык программирования с использованием ограничительного языка с открытым исходным кодом, и сайт имеет много документации, которая запустит Вас.
Если Вы - программист Java, я рекомендую использовать Сливки: Библиотека классов для Программирования с использованием ограничительного языка
руководство программирования с использованием ограничительного языка хорошо думается.
В мелочах, мой супервизор с четвертого года на университет (который был только что теперь) ссылаются там. :)
Вот еще одна ссылка на сайт курса Программирование с ограничениями .
Раньше в курсе использовался Моцарт / Оз для заданий, но теперь он был заменен на Gecode .
Правила обработки ограничений (CHR) - это язык для разработки собственных (специфичных для задачи) средств решения ограничений. Проверьте это:
Там вы найдете ссылки на
Существует также реализация CHR в JavaScript: http://chrjs.net ( https://github.com/fnogatz/CHR.js )
Microsoft Solver Foundation содержит несколько простых для понимания примеров.