Могут ли сокеты обращаться к разным языкам программирования? - PullRequest
6 голосов
/ 24 февраля 2011

Являются ли сокеты независимыми от языка программирования ?

Могу ли я сохранить сервер, написанный на Java, и клиент, написанный на C?

Ответы [ 3 ]

16 голосов
/ 24 февраля 2011

Абсолютно.В противном случае было бы довольно сложно написать веб-браузер и веб-сервер, просто в качестве примера ...

Конечно, данные, которые вы передаете через сокет, могут быть проще для чтенияс одним языком, чем с другим - например, если вы используете Java DataOutputStream, вам будет проще управлять с помощью Java на другом конце для чтения данных.Но вы все равно могли бы прочитать эти данные, поскольку формат хорошо задокументирован.

Если вы поместите в сеть абсолютно специфичные для платформы данные, это усложнит задачу - было бы сложноиспользуйте объект, сериализованный с Java ObjectOutputStream, например, из не-Java-платформы.

Но на уровне сырых сокетов нет понятия, на каком языке программирования был написан источник.

1 голос
/ 24 февраля 2011

TCP Socket связывается через двоичный поток данных. Многие языки имеют функции, которые занимают первое место в этом стеке, чтобы упростить общение, но в простейшем случае это просто двоичные данные.

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

0 голосов
/ 24 февраля 2011

Да.такова идея протоколов (TCP / UDP) для установки правил, как должно происходить соединение.

Проверка этой цепочки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...