Сервер Udp получает сообщение от внешнего клиента, как если бы он был с IP-адреса сервера [дубликат]

Это означает, что указанная переменная не указана ни на что. Я мог бы сгенерировать это так:

SqlConnection connection = null;
connection.Open();

Это вызовет ошибку, потому что, пока я объявил переменную «connection», она не указала ни на что. Когда я пытаюсь вызвать член «Open», для его устранения нет ссылки, и он будет вызывать ошибку.

Чтобы избежать этой ошибки:

  1. Всегда инициализируйте свои объекты, прежде чем пытаться что-либо с ними делать.
  2. Если вы не уверены, что объект имеет значение null, проверьте его с помощью object == null.

Инструмент Resharper JetBrains определит каждое место в вашем коде, которое имеет возможность ошибки нулевой ссылки, позволяя вам ввести нулевую проверку. Эта ошибка является источником ошибок номер один, IMHO.

1
задан rrhartjr 31 August 2010 в 16:00
поделиться

3 ответа

Взгляните на ReceiveFrom вместо Receive, это позволит вам передать ссылку на конечную точку.

8
ответ дан Brad Nabholz 3 September 2018 в 17:40
поделиться

EndPoint remote_ep = новый IPEndPoint (IPAddress.Any, 0); // Использовать ReceiveFrom вместо sendSocket.Receive (данные, SocketFlags.None); sendSocket.ReceiveFrom (data, ref remote_ep);

Я думаю, что он работает для IP-адреса, но он не подходит для номера порта, если вы заметили

попробуйте отправить 0 на что-то еще, например 6530 4expl

система будет генерировать его случайный номер порта

Любые идеи, почему?

PS Любые идеи о том, как я могу изменить свое имя пользователя здесь ....?

НАЙДЕНО: абстрактный класс, необходимый только для представления порта, не имеет значения

, поскольку нет bind done before hand this operation ref Конечная точка должна представлять отправителя. Это означает, что он должен показать порт отправителей и IP-адрес, чтобы не указывать, откуда получить сообщение. И экземпляр EndPoint на самом деле просто формальностью, похоже, что он перегружен системой с адресом отправителей в любом случае. Я думаю, что он должен делать что-то вроде того, как работает протокол UDP. Но во всем ref EndPoint есть только показывает, где u получил пакет, и только он не указывает, где u хочет, чтобы u'r commuicatino был от.

0
ответ дан Thomas 3 September 2018 в 17:40
поделиться

Что касается асинхронного сокета? Я не нашел способа получить удаленный IP-адрес. (Асинхронный метод ReceiveFromAsync - моя единственная опция в wp8)

0
ответ дан harsini 3 September 2018 в 17:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: