Иногда самый простой способ - просто добавить представление, использующее границы UIScreen.
let whiteView = UIView()
whiteView.backgroundColor = .white
view.addSubview(whiteView)
whiteView.translatesAutoresizingMaskIntoConstraints = false
whiteView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
whiteView.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
whiteView.rightAnchor.constraint(equalTo: view.rightAnchor).isActive = true
whiteView.heightAnchor.constraint(equalToConstant: UIScreen.main.bounds.height).isActive = true
Иногда иногда края обзора выходят за пределы панели навигации, что дает вам новые проблемы, если вы расширяете макет представления.
Используйте getsockopt (). Этот сайт имеет хорошую разбивку использования и опций, которые можно получить.
В Windows можно сделать:
int optlen = sizeof(int); int optval; getsockopt(socket, SOL_SOCKET, SO_MAX_MSG_SIZE, (int *)&optval, &optlen);
Для Linux, согласно странице справочника UDP, ядро будет использовать исследование MTU (это проверит то, между чем максимальный размер пакета UDP здесь и место назначения, и выберите это), или если исследование MTU будет выключено, то это установит максимальный размер на интерфейс MTU и фрагментирует что-либо большее. Если Вы отправляете по Ethernet, типичный MTU составляет 1 500 байтов.
Поскольку UDP не с установлением соединения нет никакого способа указать, что два пакета принадлежат вместе. В результате Вы ограничены максимальным размером единственного пакета IP (65535). Данные, которые можно отправить, несколько меньше, что это, потому что размер пакета IP также включает заголовок IP (обычно 20 байтов) и заголовок UDP (8 байтов).
Обратите внимание, что этот пакет IP может быть фрагментирован для помещений в пакеты меньшего размера (например, ~1500 байтов для Ethernet).
Я не знаю, что любая ОС ограничивает это далее.
На Mac OS X существуют различные значения для отправки (SO_SNDBUF) и получения (SO_RCVBUF). Это - размер отправить буфера (человек getsockopt):
getsockopt (носок, SOL_SOCKET, SO_SNDBUF, (интервал *) &optval, &optlen);
Попытка отправить большее сообщение (на Leopard 9 216 октетов на UDP, отправленном через локальную обратную петлю), будет приводить к "сообщению слишком долго / EMSGSIZE".