como eliminar los caracteres nulos de las respuestas en socket?

Steven Schveighoffer schveiguy at gmail.com
Tue Mar 28 01:05:32 UTC 2023


On 3/27/23 1:13 PM, Espartan Jhon wrote:
> hola a todos quisiera saber como es que puedo eliminar los caracteres 
> nulos de las respuestas de mi socket

In English (via google translate):

Hello everyone, I would like to know how I can remove null characters 
from my socket responses

My response in English:

You should not be getting null characters from that code, it's sending 
the string, but the string has no null characters in it.

However, I see you are reading into a static buffer. That static 
character buffer has already-defined characters in it. If you use the 
whole buffer, it will include those characters (they are not null, but 
`0xff`). The return value from `receive` is the number of characters 
written.

Try instead:

```d
auto nchars = c.receive(cadena);
if(nchars < 0) { /* error */ }
auto mensaje = cadena[0 .. nchars]; // real message
```

Traducido al español (con traductor de google):

No debería obtener caracteres nulos de ese código, está enviando la 
cadena, pero la cadena no tiene caracteres nulos.

Sin embargo, veo que está leyendo en un búfer estático. Ese búfer de 
caracteres estáticos tiene caracteres ya definidos. Si usa todo el 
búfer, incluirá esos caracteres (no son nulos, sino `0xff`). El valor de 
retorno de `receive` es el número de caracteres escritos.

Prueba en su lugar:

```d
auto nchars = c.receive(cadena);
if(nchars < 0) { /* error */ }
auto mensaje = cadena[0 .. nchars]; // mensaje real
```

-Steve


More information about the Digitalmars-d-learn mailing list