Реализовать класс Socket в java для специального назначения

Я новичок в программировании на Java, и у меня нет разрешения на использование встроенных библиотек Java, в частности Разъем и ServerSocket. Я должен реализовать программу сервер-клиент, которая всякий раз, когда клиент подключается к серверу, сервер получает свое имя и дает им некоторые задачи.

Мой вопрос в том, как реализовать для этой цели Socket и ServerSocket. Я искал в Интернете, и результаты меня разочаровали. Буду признателен, если кто-нибудь сможет мне помочь.

Если у вас нет прав на использование встроенной библиотеки, вы не сможете этого сделать, потому что в конечном итоге все будет использовать эти библиотеки, даже сторонние библиотеки. Зачем изобретать велосипед?

locus2k 08.10.2018 19:41

@ locus2k У меня просто есть разрешение на использование класса DataInput / OutputStream. Socket и ServerSocket запрещены для университетского задания сетевого курса. :(

Mostafa Ghadimi 08.10.2018 19:52

В этом нет никакого смысла, если это сетевой курс, почему они запрещают вам использовать настоящий класс для общения?

locus2k 08.10.2018 20:36

@ locus2k может быть, чтобы понять основы работы в сети. Я не знаю, что это задание звучит для меня странно :(

Mostafa Ghadimi 08.10.2018 20:48

Думаю, вы можете начать с исходного кода сокета: github.com/openjdk-mirror/jdk7u-jdk/blob/master/src/share/…

locus2k 08.10.2018 20:59

Я на 99,9% уверен, что вы неправильно поняли свое задание.

President James K. Polk 09.10.2018 03:42
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
6
46
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если ваша цель - установить TCP-соединение без Java Socket (или AsynchronousSocketChannel) или принимать TCP-соединения без Java ServerSocket (или AsynchronousServerSocketChannel), я бы сказал, что вы не можете этого сделать, в Java.

Если вы прочитаете код этих классов, вы найдете много вызовов метода родные, что означает, что используется собственный код, специфичный для ОС.

Итак, вы мог пишете код на C для реализации вашей собственной версии TCP-соединения и используете его в своем Java-коде с помощью JNI.

Это то, чему вас должно научить это задание?

Другие вопросы по теме