Это означает, что указанная переменная не указана ни на что. Я мог бы сгенерировать это так:
SqlConnection connection = null;
connection.Open();
Это вызовет ошибку, потому что, пока я объявил переменную «connection
», она не указала ни на что. Когда я пытаюсь вызвать член «Open
», для его устранения нет ссылки, и он будет вызывать ошибку.
Чтобы избежать этой ошибки:
object == null
. Инструмент Resharper JetBrains определит каждое место в вашем коде, которое имеет возможность ошибки нулевой ссылки, позволяя вам ввести нулевую проверку. Эта ошибка является источником ошибок номер один, IMHO.
Взгляните на ReceiveFrom вместо Receive, это позволит вам передать ссылку на конечную точку.
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 был от.
Что касается асинхронного сокета? Я не нашел способа получить удаленный IP-адрес. (Асинхронный метод ReceiveFromAsync
- моя единственная опция в wp8)